[03:04:54] <ada_ru> (I_vlxy_I) А вот поясните за типы: https://godbolt.org/z/dFYPKq
[03:04:58] <ada_ru> (I_vlxy_I) Почему тут ошибка?
[03:05:15] <ada_ru> (I_vlxy_I) С чего, и исходя из каких правил компилятор хочет тут Unsigned_64?
[03:06:10] <ada_ru> (I_vlxy_I) (ну и удобство и понятность сообщений об ошибках тут конечно... хоть бы компилятор написал про какую переменную он ругается)
[03:26:36] <ada_ru> (I_vlxy_I) function Test return Unsigned_32 is
a : Unsigned_32 := 1;
b : Unsigned_32 := 5;
shift : Unsigned_32 := Shift_Left(a,b);
begin
return 2;
end Test;
[03:30:51] <ada_ru> (t91x0) отвечает (I_vlxy_I) на <function Test return…>
Так если сдвинуть 32 бита без потерь, то куда биты девать?
[03:31:26] <ada_ru> (t91x0) Там поди для сдвига с потерями есть отдельная функция
[03:31:52] <ada_ru> (I_vlxy_I) нет. Shift_Left(a,5); компиляется нормально
[03:33:31] <ada_ru> (t91x0) Исходники бы увидеть от этого Shift_Left
[03:33:49] <ada_ru> (t91x0) Или это поди вообще в спецификации
[03:34:05] <ada_ru> (I_vlxy_I) это встроенная "функция"
[03:34:12] <ada_ru> (I_vlxy_I) то есть так то это не функция даже
[03:34:20] <ada_ru> (t91x0) Стало быть точно в спецификации
[03:34:28] <ada_ru> (I_vlxy_I) да. в стандарте языка
[03:34:35] <ada_ru> (I_vlxy_I) это такая же функция как << в Си
[03:34:39] <ada_ru> (t91x0) Я понял
[03:48:32] <ada_ru> (I_vlxy_I) но в любом случае реализация Shift_Left, какой бы они ни была, никак не должна влиять. влияет только спецификация же.
[07:35:34] <ada_ru> (Максим) отвечает (I_vlxy_I) на <Почему тут ошибка?>
Второй аргумент должен быть Integer, точнее Natural
function Shift_Left (Value : Unsigned_n; Amount : Natural)
return Unsigned_n;
[07:36:52] <ada_ru> (Максим) Про 64 это загон компилятора, тк он не понимает какой аргумент ты перепутал. Там ниже есть про Integer.
[13:03:06] <ada_ru> (I_vlxy_I) отвечает (Максим) на <Про 64 это загон ком…>
А почему туда нельзя Unsigned скармливать? Это же тоже неотрицательное число.
[13:04:26] <ada_ru> (I_vlxy_I) Планируется ли улучшить диагностику ошибок, кстати? А то это ж капец.
Чел пришедший с любого другого ЯП будет в шоке.
[13:29:39] <ada_ru> (Oleg) Не будет :-₽
[13:30:11] <ada_ru> (Oleg) Ясно же что на Овер 4000 бит сдвигать не надо :-)
[13:30:43] <ada_ru> (I_vlxy_I) На овер 4000 сдвигать не возбраняется как раз
[13:30:51] <ada_ru> (Oleg) А зачем ?
[13:31:07] <ada_ru> (I_vlxy_I) хез. но можно.
[13:31:11] <ada_ru> (Oleg) Если у тебя операнд 32 бита :-)
[13:31:21] <ada_ru> (Oleg) Ты лучше ассемблер покажи
[13:31:38] <ada_ru> (Oleg) Во что оно скомпилилось
[13:31:44] <ada_ru> (I_vlxy_I) но я про диагностику ошибок вообще в принципе. она у gnat выдается в несколько устаревшем виде. То есть до современных стандартов к которым все привыкли, не дотягивает.
[13:32:08] <ada_ru> (I_vlxy_I) отвечает (Oleg) на <Ты лучше ассемблер п…>
по ссылке на godbolt, если пофиксить ошибку - будет асм справа
[13:32:45] <ada_ru> (Oleg) Блин с телефона не видно
[13:33:49] <ada_ru> (I_vlxy_I) а, это да, есть такой нюанс
[13:33:55] <ada_ru> (Oleg) Во
[13:34:05] <ada_ru> (Oleg) Надо мобильное приложение сделать
[13:34:11] <ada_ru> (Oleg) Для болта
[13:34:13] <ada_ru> (I_vlxy_I) но сдвиги в Аде компилируются как везде (кроме Си и Раста): сдвиг, проверка и маска
[13:34:14] <ada_ru> (Oleg) :-)
[13:34:21] <ada_ru> (I_vlxy_I) как-то так
[13:34:49] <ada_ru> (I_vlxy_I) причем, маски с проверками - это уже сугубо x86 заморочки
[13:34:54] <ada_ru> (Oleg) Да
[13:35:03] <ada_ru> (I_vlxy_I) а так просто сдвиг
[13:35:20] <ada_ru> (Oleg) Я на микроконтроллерах на асме проверял флаг переполнения / переноса
[13:35:21] <ada_ru> (I_vlxy_I) а в какой-нибудь архитектуре там и цыкл может быть теоретически 🙂
[13:35:50] <ada_ru> (Oleg) Есть rol например кое где, это да , по кругу
[13:37:01] <ada_ru> (Oleg) А ваш ГО с ошибками это тоже п...у
[13:37:18] <ada_ru> (Oleg) Я кстати с го удожу
[13:37:26] <ada_ru> (Oleg) На.... раст :-)
[13:37:32] <ada_ru> (Oleg) Попробую
[13:38:17] <ada_ru> (I_vlxy_I) удачи 🙂 у раста тут UB возможен
[13:38:32] <ada_ru> (Oleg) Понял что все равно не правильно его использую , например мютексы использую повсеместно
[13:38:54] <ada_ru> (Oleg) Ну или обратно на плюсы :-)
[13:39:06] <ada_ru> (I_vlxy_I) Ада!
[13:39:34] <ada_ru> (Oleg) Ада потихоньку двигается тоже
[13:40:04] <ada_ru> (I_vlxy_I) куда?
[13:41:09] <ada_ru> (Oleg) В продакшен :-)
[13:43:20] <ada_ru> (I_vlxy_I) картинка https://www.ada-ru.org/files/bot/2019-10-05-x2.jpg
[14:08:10] <ada_ru> (Oleg) Не
[14:08:17] <ada_ru> (Oleg) Это про Го!
[14:56:48] <ada_ru> (I_vlxy_I) отвечает (Oleg) на <Это про Го!>
Это от языка не зависит :-)
[14:57:12] <ada_ru> (Oleg) Ну немного зависит
[14:57:24] <ada_ru> (Oleg) В PHP все так работают :-)
[14:57:54] <ada_ru> (I_vlxy_I) Ну, до второй части часто не доходит, да :-)
[14:57:55] <ada_ru> (I_vlxy_I) А первая - всегда! На любом языке!
[14:58:14] <ada_ru> (Oleg) А так да, я теперь на сенсор мониторинга трачу 2 дня и в продакшен
[14:58:16] <ada_ru> (Oleg) :-)
[14:58:30] <ada_ru> (Oleg) Некогда тестировать и доводить до ума
[14:59:51] <ada_ru> (Oleg) Вот чтоб мониторить файловер статус кластера из двух АСА
[14:59:55] <ada_ru> (Oleg) картинка https://www.ada-ru.org/files/bot/2019-10-05-x3.jpg
[15:00:25] <ada_ru> (Oleg) Теперь на аде пробую сделать кое что
[15:02:11] <ada_ru> (I_vlxy_I) отвечает (Oleg) на <Некогда тестировать …>
Release early, release often!
[15:02:19] <ada_ru> (Oleg) ;-)
[15:02:32] <ada_ru> (Oleg) Да баг нашёл - поправил :-)
[15:03:08] <ada_ru> (I_vlxy_I) Frequent releases strategy!
[15:43:03] <ada_ru> (Максим) отвечает (I_vlxy_I) на <но я про диагностику…>
Мы же уже находили нужный ключ при котором диагностика тебя устраивала
[15:45:57] <ada_ru> (Максим) отвечает (I_vlxy_I) на <А почему туда нельзя…>
Потому, что строгая типизация. Может быть 100 500 целых типов
[16:10:52] <ada_ru> (I_vlxy_I) отвечает (Максим) на <Мы же уже находили н…>
Я попробовал - тут лучше не стало
[16:11:18] <ada_ru> (I_vlxy_I) отвечает (Максим) на <Потому, что строгая …>
А это не избыточное ли тут ограничение?
[16:11:52] <ada_ru> (I_vlxy_I) Кажется тут достаточно чекнуть границы типа и всё
[16:12:51] <ada_ru> (I_vlxy_I) отвечает (Максим) на <Мы же уже находили н…>
btw: почему по умолчанию настолько плохие сообщения об ошибках?
[16:14:44] <ada_ru> (I_vlxy_I) Я ж не хейчу, я реально хочу чтобы лучше было.
[16:55:09] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <function Test return…>
так b должна иметь тип Natural, так как именно такой титп ожидает Shift_Left
function Shift_Left (Value : Unsigned_n; Amount : Natural)
return Unsigned_n;
[16:56:24] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <А почему туда нельзя…>
патамушта строгая статическая типизация, это тебе не сишечка, где кто куда хочет конвертируется
[16:59:49] <ada_ru> (Eugene) https://habr.com/ru/company/pvs-studio/blog/329270/
[17:01:32] <ada_ru> (I_vlxy_I) отвечает (Eugene) на <патамушта строгая ст…>
Как это будет в хаскелле?
[17:02:35] <ada_ru> (Eugene) в хаскелле есть один общий тип Integer (безразмерный) а на подмножества плювать ))))
[17:05:23] <ada_ru> (Eugene) на самом деле есть конечно всякие Int8, Int16, Word8, Word64 и типа таких, но их надо будет преобразовывать явно, патамушта тоже строгая статическая типизация
[17:27:29] <ada_ru> (Максим) отвечает (I_vlxy_I) на <btw: почему по умолч…>
Ну как компилятору тут советовать? Собрать все варианты подпрограмм с данным именем, выбрать множество типов для каждого аргумента и выводить всё это множество? Это будет сильно много. Там есть опция, заставляющая компилятор выводить все варианты
[17:52:15] <ada_ru> (Максим) Честно говоря, вообще не понимаю в чём проблема. Вызывая функцию ты должен знать количество и типы аргументов. Если компилятор говорит, что ты не прав, ну пойди и посмотри, какие типы нужны 😀 Компилятор вообще мог написать "мужик, ты не прав!" 😁
[18:28:10] <ada_ru> (t91x0) Пусть-ка компилятор напишет, что он ожидает, и что подают. Он мог бы ещё иерархию наследования выводить, чтобы показать несовпадающие корни
[18:28:29] <ada_ru> (t91x0) Во всяком случае, Rust выводит на редкость подробные и осмысленные ошибки
[18:29:18] <ada_ru> (t91x0) Есть и противоположность - mongodb с её ошибками, из которых вообще нельзя понять, чего ей не нравится внутри какого-нибудь агрегата второго уровня вложенности.
[18:29:38] <ada_ru> (t91x0) Но Ада-то вроде не монга богомерзкая.
[19:08:01] <ada_ru> (I_vlxy_I) отвечает (Максим) на <Ну как компилятору т…>
Смотри, давай на более ограниченном примере. Вот я сделал то же, но со своей функцией в Аде: https://godbolt.org/z/fKpcop (точнее с процедурой). Диагностика та же самая.
[19:08:12] <ada_ru> (I_vlxy_I) То есть невнятная
[19:08:22] <ada_ru> (I_vlxy_I) А теперь смотри как это же будет С++
[19:08:31] <ada_ru> (I_vlxy_I) https://godbolt.org/z/956QQb
[19:10:12] <ada_ru> (I_vlxy_I) то есть приводит альтернативы, говорит какие аргументы к чему пытался привести
[19:10:36] <ada_ru> (I_vlxy_I) https://godbolt.org/z/pYDwd9
[19:10:39] <ada_ru> (I_vlxy_I) Вот gcc
[19:11:33] <ada_ru> (I_vlxy_I) Что понятней. Вот это:
[19:11:38] <ada_ru> (I_vlxy_I) картинка https://www.ada-ru.org/files/bot/2019-10-05-x4.jpg
[19:11:54] <ada_ru> (I_vlxy_I) Или вот это:
[19:11:57] <ada_ru> (I_vlxy_I) картинка https://www.ada-ru.org/files/bot/2019-10-05-x5.jpg
[19:13:08] <ada_ru> (I_vlxy_I) Можно gnat сказать -gnatv тогда диагностика будет чуть подробней
[19:13:30] <ada_ru> (I_vlxy_I) картинка https://www.ada-ru.org/files/bot/2019-10-05-x6.jpg
[19:13:42] <ada_ru> (I_vlxy_I) Что такое тут 1,2,7? Кто на ком стоял вообще?
[19:14:38] <ada_ru> (t91x0) отвечает (I_vlxy_I) на <Что такое тут 1,2,7?…>
Строки
[19:14:54] <ada_ru> (I_vlxy_I) Какие строки? откуда строки?
[19:14:58] <ada_ru> (t91x0) Но подход странный
[19:15:15] <ada_ru> (t91x0) Ну строки с ошибками, номера их
[19:15:18] <ada_ru> (I_vlxy_I) первая строка в исходнике вообще pragma Source_File_Name (Test, Body_File_Name => "example.adb");
[19:15:26] <ada_ru> (t91x0) Нет!
[19:15:33] <ada_ru> (t91x0) >>>
[19:15:40] <ada_ru> (t91x0) Эти строки
[19:16:19] <ada_ru> (I_vlxy_I) да они еще и не пронумерованы до кучи. это ж вообще капец.
то есть для тулзов может это и нормально, но человек читать это не может
[19:16:28] <ada_ru> (I_vlxy_I) (хотя для тулов я бы в json выхлоп сделал)
[19:16:53] <ada_ru> (t91x0) отвечает (I_vlxy_I) на <(хотя для тулов я бы…>
Отдельным ключом
[19:17:06] <ada_ru> (I_vlxy_I) А главное, как мне тут до сути ошибки докопаться?
[19:18:31] <ada_ru> (I_vlxy_I) Ну, то есть лет 10-15 назад у gnat диагностика была объективно лучше чем у многих с++ компиляторов, это правда. Тогда с++ выдавал номер строки и невнятное сообщение, а gnat выдавал позицию ошибки в строке и чуть более адекватное сообщение.
Но сейчас...
[19:19:08] <ada_ru> (I_vlxy_I) И это я сейчас сравнивал с компилятором c++, а у c++ диагностика ошибок никогда не была сильной стороной. Если сравнить с java или с новыми языками, разница будет еще очевидней.
[19:19:39] <ada_ru> (I_vlxy_I) При этом вот этот вот случай - это ПРОСТАЯ ошибка. ни дженериков ни навороченного наследования, ни монад/шмонад и так далее.
[19:22:05] <ada_ru> (I_vlxy_I) собственно львиная доля батхёрта от сложности и строгости типов в Аде у неофитов скорее всего из за системы диагностики GNAT а не из за языка как такового.
[19:30:16] <ada_ru> (I_vlxy_I) Ну, а с точки зрения языка, Left_Shift в качестве второго аргумента, по идее, мог бы принимать любой тип удовлетворяющий некоторым критериям. Смысла в более строгом ограничении я, честно говоря, не вижу.
[19:31:47] <ada_ru> (Oleg) Вы придираетесь господа
[19:32:22] <ada_ru> (Oleg) Не нравится - сделай свой шифт , с блэкджеком и ....и
[19:32:29] <ada_ru> (Oleg) :-)
[19:32:32] <ada_ru> (t91x0) Не получится
[19:32:42] <ada_ru> (I_vlxy_I) дык я и сделал, см. выше 🙂 те же йайса
[19:32:47] <ada_ru> (I_vlxy_I) разве что его дженериком сделать
[19:32:57] <ada_ru> (t91x0) Это же одна инструкция на ассемблере
[19:32:59] <ada_ru> (I_vlxy_I) и явным образом инстанцировать при каждом использовании
[19:33:22] <ada_ru> (I_vlxy_I) и он унутре себя будет конвертировать туда-сюда обратно и звать уже Left_Shift
[19:33:55] <ada_ru> (I_vlxy_I) ну и молиться, поститься и надеяться, что всё заинлайнится и оптимизируется
[19:34:01] <ada_ru> (I_vlxy_I) отвечает (t91x0) на <Это же одна инструкц…>
в Аде - не одна
[19:34:18] <ada_ru> (I_vlxy_I) (и в Go, Swift тоже не одна, а в Rust там UB 🙂 )
[19:34:34] <ada_ru> (I_vlxy_I) зато в расте быстро! такой же быстрый UB как и в С++
[19:34:43] <ada_ru> (Oleg) Asm(xxxx) :-₽
[20:00:26] <ada_ru> (zloidemon) отвечает (I_vlxy_I) на <(и в Go, Swift тоже …>
swift вообще отличный язык, но библиотек нет ничего нихера нет
[20:01:00] <ada_ru> (Oleg) И кстати если учитывать перенос да и что-то с этим делать то это уже совсем не одна инструкция
[20:04:35] <ada_ru> (I_vlxy_I) отвечает (zloidemon) на <swift вообще отличны…>
его еще ругают за тормознутость
[20:04:53] <ada_ru> (zloidemon) отвечает (I_vlxy_I) на <его еще ругают за то…>
Там же дохера легаси
[20:04:59] <ada_ru> (zloidemon) Я писал на нём процедуры для бд
[20:05:10] <ada_ru> (I_vlxy_I) в самом ЯП или в либах?
[20:05:20] <ada_ru> (I_vlxy_I) я не помню в каком именно месте он тормозит, кстати
[20:05:23] <ada_ru> (I_vlxy_I) в либах или в ЯП
[20:05:24] <ada_ru> (zloidemon) отвечает (I_vlxy_I) на <в самом ЯП или в либ…>
Сам, там тащится же весь objc
[20:06:07] <ada_ru> (zloidemon) Всё старое легаси что было под macOS десятками лет, вызыватся из swift, плюс куча С++. И выкинуть это нельзя пока что.
[20:06:22] <ada_ru> (I_vlxy_I) погоди, даже в linux версии?
[20:06:51] <ada_ru> (zloidemon) отвечает (I_vlxy_I) на <погоди, даже в linux…>
Там есть foundation, который пишет комьюнити, но оно не всё покрывает.
[20:07:01] <ada_ru> (zloidemon) Сейчас найду и покажу в коде
[20:07:22] <ada_ru> (Vadim) А давайте с самого интересного начнём. Зачем вообще shift?
[20:07:39] <ada_ru> (zloidemon) отвечает (Vadim) на <А давайте с самого и…>
Что бы писать буквы заглавные
[20:08:23] <ada_ru> (Vadim) Это единственный правильный ответ 👍
[20:09:05] <ada_ru> (Vadim) Ибо во всех остальных случаях он просто не нужен.
[20:09:51] <ada_ru> (zloidemon) отвечает (I_vlxy_I) на <погоди, даже в linux…>
Вот смотри https://github.com/apple/swift/search?l=C%2B%2B мы брали обычный сишный код каких-нибудь проверенных либ, и уже просто оборачивали в swift и писали. В целом так нормально работало, но вот когда идёт речь о всяких Foundation и прочих вещах, там всё начинается не очень хорошо
[20:11:20] <ada_ru> (zloidemon) https://github.com/apple/swift-corelibs-foundation вот собственно сама либа
[20:13:05] <ada_ru> (I_vlxy_I) отвечает (Vadim) на <А давайте с самого и…>
дык притензий к самому шифту нет. притензии к диагностике. диагностика одинаково работает и для шифта и для не шифта, как было показано выше
[20:13:55] <ada_ru> (I_vlxy_I) технически же в плане шифта Ада безопасна, а тот же Rust - нет
[20:14:49] <ada_ru> (I_vlxy_I) но это не из за строгой типизации 🙂
[20:15:08] <ada_ru> (zloidemon) отвечает (I_vlxy_I) на <технически же в план…>
За скорость надо платить
[20:15:33] <ada_ru> (Vadim) Ну тогда наверное нужно пожаловаться. Взять GNAT Community, получить диагностику, приложить её и код примера, написать письмо.
[20:15:59] <ada_ru> (I_vlxy_I) отвечает (zloidemon) на <За скорость надо пла…>
раст пихают в нишу безопасного ПО, в том числе всё чаще его призывают пихать в ту же авионику. но раст сосредоточен на безопасности очень однобоко. то есть там готовы создавать UB в safe кода в угоду скорости.
[20:16:28] <ada_ru> (I_vlxy_I) отвечает (Vadim) на <Ну тогда наверное ну…>
дык вон, по ссылке на godbolt и пример кода и сразу диагностика.
[20:17:28] <ada_ru> (zloidemon) отвечает (I_vlxy_I) на <раст пихают в нишу б…>
Ну это глупо на мой взгляд, rust хорошо подоходит в те конторы где уже много С++. Что бы как-то начинать более безопасно программировать, и не терять производительность в ПО, и переносить уже то что есть. А вот прям если что-то безопасное начинать, я бы не сказал что rust для этого подходит.
[20:17:41] <ada_ru> (Vadim) А вот тикета-то и нет. А нет тикета - нет и проблемы. Ибо посвистеть все мы горазды, и никто за соловьями следить не будет.
[20:18:02] <ada_ru> (I_vlxy_I) отвечает (Vadim) на <А вот тикета-то и не…>
а куда тикет заводить? на гитхабе есть чо? или в багзиллу gcc?
[20:18:48] <ada_ru> (Vadim) Bugzilla или не помню какой там метод жалоб прямо в AdaCore
[20:19:12] <ada_ru> (I_vlxy_I) отвечает (zloidemon) на <Ну это глупо на мой …>
я согласен. но народ, кажется, не осознает что rust не самый безопасный язык. точнее, что у него не все аспекты заточены на безопасность.
[20:19:56] <ada_ru> (I_vlxy_I) отвечает (Vadim) на <Bugzilla или не помн…>
есть еще вариант написать жалобу в спортлото, в смысле в англоязычный чатик адский - там адакорные челы имеются.
[20:19:59] <ada_ru> (zloidemon) отвечает (I_vlxy_I) на <я согласен. но народ…>
Модно, сейчас тренд пройдёт и будет ясно. Это как было с javascript и node.js, как бизне сожрал говна с бэкендами на node.js успокоились.
[20:20:24] <ada_ru> (Vadim) Нет другого способа.
[20:20:40] <ada_ru> (I_vlxy_I) отвечает (zloidemon) на <Модно, сейчас тренд …>
xxx: только не надо писать фронтенд на пхп
yyy: ну вы же бэкэенд на js пишете!
[20:20:45] <ada_ru> (Vadim) Повторю - нет официального тикета - нет проблемы.
[20:21:11] <ada_ru> (I_vlxy_I) ok. а куда писать то?
[20:21:27] <ada_ru> (I_vlxy_I) на почту куда-то? как отследить, что тикет заведен?
[20:21:30] <ada_ru> (zloidemon) отвечает (I_vlxy_I) на <xxx: только не надо …>
Ну я и то и другое писал, но на python. Так вот гемороя больше когда у тебя js в коде есть, а не SSR.
[20:21:35] <ada_ru> (I_vlxy_I) как отследить движение по тикету?
[20:22:06] <ada_ru> (zloidemon) Когда всё на SSR код либо работает, либо нет. И понятно кому и где надо пиздюлей давать и что чинить. А с этими js программистами, сейчас вкладка в браузере весит 400-800 мб
[20:23:01] <ada_ru> (Vadim) Почта пришлёт номер. Как поправят - напишут. Как решат забить - тоже напишут.
[20:23:23] <ada_ru> (zloidemon) отвечает (Vadim) на <Почта пришлёт номер.…>
Может ещё модерация есть, ну и спам проверить надо всегда =)
[20:24:15] <ada_ru> (I_vlxy_I) какой-то не очень прозрачный процесс 🙂 может таки ишьютрекер для комьюнити на github'e завести, как это сделали для Ады?
[20:24:49] <ada_ru> (Vadim) Хочешь больше - используй Bugzilla ;)
[20:25:07] <ada_ru> (Vadim) Хочешь быстрее - напиши в AdaCore
[20:25:17] <ada_ru> (I_vlxy_I) отвечает (Vadim) на <Хочешь больше - испо…>
а какую именно? gcc'шную багзиллу?
[20:25:50] <ada_ru> (Vadim) Да, GCCшную.
[20:26:10] <ada_ru> (Vadim) По мне так самый бесполезный способ это
[20:27:39] <ada_ru> (I_vlxy_I) смотри, там, по идее, всю систему диагностики причесать бы, а не один конкретный случай
[20:28:12] <ada_ru> (I_vlxy_I) я помню gcc (в части c++) начал чесаться и причесывать диагностику только после того, как clang показал, что диагностика может быть нормальной
[20:28:48] <ada_ru> (I_vlxy_I) и народ начал массово плеваться на gcc диагностику. (ну и часто новички и не только делали выбор в пользу clang именно из за диагностики ошибок)
[20:29:22] <ada_ru> (I_vlxy_I) как правильней донести мысль до АдаКоры, что тут вообще есть проблема?
[20:29:56] <ada_ru> (I_vlxy_I) тот кто gnat использует много лет, тот уже давно привык и проблемы не видит
[20:29:59] <ada_ru> (Vadim) Открывать тикеты! Другого способа нет.
[20:30:56] <ada_ru> (zloidemon) отвечает (I_vlxy_I) на <и народ начал массов…>
Я помню что когда что-то компилил gcc, например от версии 4.7 на 4.9 код уже не собирался. А clang любой версией компилился, после чего я пользоваться начал только clang.
[20:31:06] <ada_ru> (zloidemon) Надоело патчить код под компилятор.
[20:35:40] <ada_ru> (I_vlxy_I) отвечает (Vadim) на <Открывать тикеты! Др…>
забанят за спам 🙂
[20:39:26] <ada_ru> (Vadim) Это заслужить нужно.
[20:45:26] <ada_ru> (I_vlxy_I) чот я ничего не понял. везде написано, что нет никакого саппорта у gnat comminity
[20:45:50] <ada_ru> (I_vlxy_I) а для адекватных юзеров (то есть юзеров Gnat Pro) есть GNAT Tracker
[20:47:52] <ada_ru> (Vadim) О коммерческой поддержке никто не говорил. Но это не запрещает жаловаться!
[20:49:34] <ada_ru> (I_vlxy_I) а на какой адрес то писать?
[20:49:47] <ada_ru> (I_vlxy_I) info@adacore.com ?
[20:50:26] <ada_ru> (Vadim) report@adacore.com в заголовке должно быть слово gnat
[20:50:53] <ada_ru> (I_vlxy_I) ага, ок
[21:04:05] <ada_ru> (Максим) отвечает (Vadim) на <Bugzilla или не помн…>
Письмо на report@adacore.com, subject должен содержать слово gnat
[22:24:53] <ada_ru> (Максим) Какой либой можно такое нарисовать в svg? https://www.ada-ru.org/files/bot/2019-10-05-x7.jpg
[22:38:32] <ada_ru> (I_vlxy_I) отвечает (Максим) на <>
под какую платформу? под браузер?
[22:41:47] <ada_ru> (I_vlxy_I) или под линух/виндух?
сишная пойдет? а js? а c++?
[22:43:28] <ada_ru> (I_vlxy_I) вот для плюсов такое есть:
[22:43:42] <ada_ru> (I_vlxy_I) <прислал документ>
[22:43:47] <ada_ru> (I_vlxy_I) <прислал документ>
[22:44:52] <ada_ru> (I_vlxy_I) вот для js: https://svgjs.com/docs/2.7/getting-started/
[22:46:13] <ada_ru> (I_vlxy_I) отвечает (I_vlxy_I) на <>
github: https://github.com/adishavit/simple-svg