[09:17:54] <ada_ru> (no111u3)  отвечает (I_vlxy_I) на <Ада в список нестанд…>
Интересный вопрос, очень интересный. С одной стороны сейчас готовых решений без допила нет, с другой стороны при наличии ллвм бэкэнда это уже не спортивно.
[09:22:29] <OCTAGRAM> AdaMagic в clang загнать, вот и LLVM
[09:24:03] <ada_ru> (no111u3) Магия это та которая на выходе С код генерит?
[09:28:57] <OCTAGRAM> с настраиваемыми градациями C++
[10:07:16] <ada_ru> (no111u3) Хм, здравствуй кларион и ним..
[10:11:58] <OCTAGRAM> а также Eiffel, Dylan, haXe
[10:14:02] <OCTAGRAM> да и C++ с Objective-C на пару
[10:50:03] <ada_ru> (Максим)  отвечает (no111u3) на <Интересный вопрос, о…>
Какие готовые решения имеются ввиду? Есть вполне нормальный кросс для arm, например.
[11:00:34] <ada_ru> (I_vlxy_I) А за деньги небось и под ppc есть
[11:03:03] <OCTAGRAM> у меня даже в p2p шаре такой остался
[11:03:07] <OCTAGRAM> под макос
[11:03:15] <OCTAGRAM> без всяких денег
[11:03:33] <OCTAGRAM> TURBO.TPH на нём декомпилировал, на макосе в эмуляции гонял
[11:32:24] <ada_ru> (I_vlxy_I)  отвечает на <(OCTAGRAM) под макос>
Не. Я про baremetal ppc
[11:36:25] <ada_ru> (I_vlxy_I) Мы же про embedded говорим
[14:39:15] <ada_ru> (no111u3) Ллвм и под повер пц есть и не за деньги
[14:39:25] <ada_ru> (no111u3) И под октагон и под много чего
[15:17:57] <ada_ru> (Максим) @no111u3 так какой же ответ на мой вопрос выше?
[16:06:16] <ada_ru> (no111u3) Пока единственный компилятор под аду из нативного это гнутый
[16:06:42] <ada_ru> (no111u3) Где-то я видел разной убитости фронт к ллвм
[16:06:59] <ada_ru> (no111u3) Но по факту ничего нет
[16:07:41] <ada_ru> (Максим) а почему gcc не подходит под понятие "готовых решений без допила"?
[16:12:29] <ada_ru> (no111u3) Гцц скучно
[16:13:09] <ada_ru> (no111u3) Тем более гцц это не один компилятор а 100500 под каждый язык
[16:15:55] <ada_ru> (no111u3)  отвечает (Максим) на <а почему gcc не подх…>
И кстати вопрос, а какую версию ады пддерживает гцц?
[16:20:40] <OCTAGRAM> https://www.ptc.com/-/media/Files/PDFs/Developer-Tools/J6542-ObjectAda-Embedded-Compilers-DS.pdf?la=en&hash=5D48F4FB613F2F2C9B165F1CA61BEADFF3694214
[16:22:06] <OCTAGRAM> в OA для Windows — Ada 2012, в этом PDF — только 95, не ясно, PDF не обновляют или действительно для голого железа нет 2012, в отличие от Windows
[16:25:37] <ada_ru> (Максим)  отвечает (no111u3) на <И кстати вопрос, а к…>
Самую распоследнюю - Ada 2012 с техническими правками (Technical Corrigendum 1) ака ISO/IEC 8652:2012(E). Можно еще включить и новые фишки из Ada 202x
[16:26:23] <ada_ru> (no111u3) А насколько достоверно? Как фортран?
[16:27:38] <ada_ru> (Максим) Ну FSF GCC проходит тесты ACATS и тесты из самого gcc
[16:29:27] <ada_ru> (no111u3) Тесты самого гцц это вещь в себе
[16:30:09] <ada_ru> (no111u3) Вспоминая тот же си там столько багов пропущенных этими тестами что в самсе в итоге сказали в топку гцц, лучше кланг
[16:30:25] <ada_ru> (no111u3) Ибо для не х86 гцц вообще местами лажает
[16:35:01] <ada_ru> (no111u3) Но вопрос был не об этом
[16:35:35] <ada_ru> (no111u3) А о том насколько реально оно может собирать проекты написанные на Аде
[16:35:39] <ada_ru> (no111u3) Старые и новые
[16:36:02] <ada_ru> (Максим) Ну собирает не плохо те что мне интересны
[16:36:21] <ada_ru> (no111u3) То есть реально оно рабочее
[16:36:30] <ada_ru> (no111u3) Уже не плохо
[16:36:49] <ada_ru> (Максим) да, fsf gcc сейчас совсем не плох
[16:36:55] <OCTAGRAM> не было никакого clang ещё совсем недавно, и жили как-то
[16:36:58] <ada_ru> (no111u3) А то с другими языками кроме С89 постоянно натыкаешся на баги
[16:37:32] <ada_ru> (no111u3)  отвечает на <(OCTAGRAM) не было н…>
Как-то это имели свой набор патчей игноримых разрабами гцц
[16:37:53] <OCTAGRAM> весь макос тайгер был на GCC, а clang даже не было
[16:38:47] <ada_ru> (no111u3) Какось это в основном х86 и ранее павер писы
[16:39:10] <ada_ru> (no111u3) А когда нужно что-то не из этого списка грусть и печаль
[16:42:38] <ada_ru> (no111u3) Ну неадовно разрабы гцц решили что пора переписать часть кода на С++ и в итоге компилят сишный код С++ компилятором с плюсовыми флагами
[16:43:26] <ada_ru> (no111u3) А регрес по генерируемому коду как был так и остался
[16:44:01] <OCTAGRAM> MIPS под Venus Linux тоже печаль?
[16:44:27] <OCTAGRAM> вроде чуть ли не везде он
[16:45:16] <OCTAGRAM> в NetBSD очень широкий диапазон всяких поддерживаемых тостеров, и вроде бы без gcc там ничего не обходится
[16:45:23] <ada_ru> (no111u3) Мипс это такой зверь под который кастомный гцц с кучей допилок
[16:46:11] <ada_ru> (no111u3) А тот что из коробки не юзал ни разу, ибо мипс хоть у кого-то и везде а кто-то о нём только на картинках слышал
[16:47:28] <ada_ru> (no111u3) Бсд если емнип на кланг перетекает
[16:47:44] <ada_ru> (Максим) openwrt как-то же космпилится?
[16:48:04] <ada_ru> (no111u3) Я хз
[16:48:14] <ada_ru> (no111u3) Ни разу не видел и не собирал
[16:48:42] <ada_ru> (Максим) я хотел, но так и не собрался :(
[16:48:47] <ada_ru> (no111u3) Хд
[16:49:18] <ada_ru> (no111u3) У меня дома вообще если и есть мипс то по моему недосмтру
[16:49:22] <ada_ru> (I_vlxy_I) GNAT GPL это ж gcc от адакоры
[16:50:08] <ada_ru> (I_vlxy_I) И лучше компилятора Ады в плане поддержки стандартов современных просто нет
[16:50:20] <ada_ru> (no111u3) А линкус в качестве роутера мне перестал нравится в виду 20+% потерь на внутренней кухне ядра
[16:50:38] <ada_ru> (no111u3) Начиная с 4.х
[16:51:34] <ada_ru> (Максим) а есть опенсорсные альтернативы?
[16:52:39] <ada_ru> (no111u3) Чего?
[16:53:32] <OCTAGRAM> роутеры, STB — много на MIPS
[16:54:06] <OCTAGRAM> BSD, наверное, подразумевается
[16:54:43] <ada_ru> (no111u3) Stb щас одни армы
[16:54:44] <ada_ru> (I_vlxy_I) Стоковый gcc для арма норм компилит
[16:55:19] <ada_ru> (no111u3) Это я как человек под них пишущий говорю
[16:55:29] <OCTAGRAM> хм, ну это даже облегчение
[16:55:30] <ada_ru> (I_vlxy_I) Вообще, фронтенда ады для llvm не существует по факту. И llvm я бы стал в этой задаче рассматривать в последнюю очередь
[16:56:19] <ada_ru> (no111u3)  отвечает (I_vlxy_I) на <Стоковый gcc для арм…>
Мне лень вспоминать номера багов на которые лично я натыкался но если хочешь то после отпуска могу накидвть
[16:57:08] <ada_ru> (no111u3)  отвечает на <(OCTAGRAM) роутеры, …>
А роутеры из-за лицензий в сохо на мипсе
[16:57:09] <ada_ru> (I_vlxy_I) В любом продукте есть баги. Это нормально
[16:57:12] <ada_ru> (no111u3) Неа
[16:57:18] <ada_ru> (I_vlxy_I) И если его используют, то эти баги нвходят
[16:57:30] <ada_ru> (no111u3) Не просто баги а те которые никто не правит
[16:57:53] <ada_ru> (no111u3) И растущая пессимизация кода от ветки к ветке
[16:58:16] <ada_ru> (I_vlxy_I) Значит не критично
[16:58:22] <OCTAGRAM> ибо под MIPS имеется в виду не просто MIPS, а Venus Linux, который не сам в фреймбуфер как нормальные люди отображает, а какой-то там модуль ядра хитрый закрытый, быстро декодирующий MPEG, и программа, с ним работающая, хитрая и закрытая, а можно только RSS подсовывать этой программе
[16:58:29] <ada_ru> (no111u3) Критично но не им
[16:59:07] <ada_ru> (I_vlxy_I) Энивей ады под llvm нет. И не будет. Поэтому можно расслабиться.
[16:59:08] <ada_ru> (no111u3) А вообще им и деньги давали
[16:59:20] <ada_ru> (no111u3) И готовые патчи высылали
[16:59:28] <ada_ru> (no111u3) И один фиг
[16:59:57] <ada_ru> (no111u3)  отвечает (I_vlxy_I) на <Энивей ады под llvm …>
Я пока ничего про это бы говорить не стал
[17:00:15] <OCTAGRAM> fix: Есть AdaMagic. Поэтому можно расслабиться.
[17:02:02] <ada_ru> (no111u3) Нужды нет пока
[17:04:56] <ada_ru> (I_vlxy_I)  отвечает (no111u3) на <Я пока ничего про эт…>
Почему? Адакор вроде не собирается одновременно два бекенда поддерживать.
[17:09:58] <ada_ru> (I_vlxy_I) llvm вообще сделан сишниками для си. llvm не позволит сделать столь же эффективную кодогенерацию для ады как gcc.
[17:11:47] <ada_ru> (no111u3) Ллвм сделан как нормальное предствление о бэкэнде компилятора
[17:12:37] <ada_ru> (no111u3) А учитывая количество фронтендов которые он сейчас поддерживает говорить так ну мягко говоря не верно
[17:12:51] <ada_ru> (no111u3) Гцц писался на паскале для си
[17:13:06] <ada_ru> (no111u3) Так что тоже такой себе кандидвт
[17:15:00] <ada_ru> (no111u3)  отвечает (I_vlxy_I) на <Почему? Адакор вроде…>
Не они так другие
[17:15:24] <ada_ru> (Максим) интересно было бы попилить кодогенератор ады на llvm
[17:16:06] <ada_ru> (no111u3) У меня лежит где-то на конец осени такой план
[17:16:21] <ada_ru> (no111u3) Литературы я себе набрал
[17:16:37] <ada_ru> (no111u3) Остаолсь запастись терпением
[17:17:12] <ada_ru> (Максим) А ты хочешь это делать на основе фронтенда gcc?
[17:17:52] <ada_ru> (no111u3) А хз
[17:18:10] <ada_ru> (no111u3) Я не хочу брать готовый код
[17:18:37] <ada_ru> (no111u3) Почему: потому, что он прибит гвоздями к текущей экосистемы
[17:18:49] <ada_ru> (Максим) фронтэнд сделать тяжело 😕
[17:19:28] <ada_ru> (I_vlxy_I) Вот тут мне Максим популярно объяснил почему llvm для ады это плохо:  https://www.ada-ru.org/forum/p2424579058_1.html
[17:19:34] <ada_ru> (Максим) я думал сделать какое-то древовидное представления Ада программы с разрешенными именами и из него генерить llvm
[17:19:46] <ada_ru> (I_vlxy_I) И почему это будет очень не эффективно.
[17:20:08] <ada_ru> (no111u3)  отвечает (Максим) на <я думал сделать како…>
Ну это логичнее всего
[17:20:17] <ada_ru> (I_vlxy_I) llvm подходит только для Си, если верить анализу Максима.
[17:21:04] <ada_ru> (no111u3) А если верить гуглу и мозилле  то не только
[17:21:11] <ada_ru> (Максим) эх TenDRA, моя любовь 😊 Мертва безнадежно
[17:22:23] <ada_ru> (no111u3)  отвечает (I_vlxy_I) на <И почему это будет о…>
Эффективность вообще спорный вопрос
[17:22:34] <ada_ru> (Максим) ну с тех пор в llvm что-то уже улучшилось или я переосмыслил.
[17:23:03] <ada_ru> (no111u3) Ллвм вырос
[17:23:09] <ada_ru> (no111u3) Очень сильно
[17:23:23] <ada_ru> (no111u3) И та же меса целиком использует его
[17:23:52] <ada_ru> (no111u3) Чем больше тулчейнов тем лучше для языка
[17:24:47] <ada_ru> (Максим) сейчас, наверное, llvm бакенд - лучший вариант для нового компилятора
[17:24:55] <ada_ru> (no111u3) Да
[17:25:29] <ada_ru> (no111u3) И многие языки которые сейчас популярны юзают именно его
[17:25:40] <ada_ru> (no111u3) Он модульный
[17:26:23] <ada_ru> (no111u3) И я даже находил примерную цену в человеко-часах для фронта/бэка нового языка/машинной архитектуры
[17:26:29] <ada_ru> (Максим) так вот, я про промежуточное представление по которому генерить llvm, его можно было бы генерить ASIS-ом или даже libadalang-ом, пока нет своего фронтэнде
[17:27:12] <ada_ru> (no111u3) Беку нужен ир, а его можно чем угодно делать
[17:27:58] <ada_ru> (Максим) ну я имею ввиду, чтобы IR LLVM-а генерить не по Ада коду, а по еще одному представлению
[17:28:23] <ada_ru> (no111u3) Ну надо смотреть
[17:28:31] <ada_ru> (Максим) потому, что сделать сейчас "разрешение имен" это не один год убить
[17:29:36] <ada_ru> (no111u3) Неа
[17:29:38] <ada_ru> (no111u3) Меньше
[17:32:07] <ada_ru> (no111u3) У чуваков получился человекогод на весь тулчейн
[17:33:14] <ada_ru> (Максим) commit 00f54d716b6ee999865ee008b811c855295be983
Author: Raphael Amiard <amiard@adacore.com>
Date:   Mon May 26 21:16:48 2014 +0200

   First commit
[17:33:49] <ada_ru> (Максим) первый комит в libadalang, а он только сейчас что-то умеет разрешить правильно
[17:34:51] <ada_ru> (Максим) и то не 100% разрешает
[17:39:22] <ada_ru> (no111u3) Ну опять же от упорства зависит
[17:39:26] <ada_ru> (no111u3) И времени
[17:41:15] <ada_ru> (Максим) ок. если будет нужно скем-то посоветоваться свисти, я с этим уже давно долбаюсь. есть кое-какие наработки (опенсорс)
[17:41:28] <ada_ru> (no111u3) Обязательнл
[17:41:48] <ada_ru> (Максим) https://github.com/reznikmm/gela
[17:42:49] <ada_ru> (no111u3)  отвечает (Максим) на <https://github.com/r…>
Прикольно
[17:43:21] <ada_ru> (Максим) я пытался что-то описывать, но не интересно особо никому, бросил http://forge.ada-ru.org/gela/wiki/ru/resolve
[17:43:23] <ada_ru> (no111u3) А то сразу налетели сразу: ллвм нинужен.
[17:43:59] <ada_ru> (Максим) я так не говориk 😕
[17:44:10] <ada_ru> (no111u3) Да не ты
[17:45:04] <ada_ru> (no111u3) Просто я лично считаю: чем больше компиляторов тем больше выбора и конкуренции
[17:45:36] <ada_ru> (no111u3) Вон г++ научился ошибки в шаблонах подсвечивать даже лучше гланга
[17:45:53] <ada_ru> (no111u3) А раньше была портянка на 10 экранов
[17:50:29] <ada_ru> (no111u3)  отвечает (Максим) на <я так не говорил 😕>
Вообще в аде как и в С период застоя
[18:11:05] <OCTAGRAM> гомогенный рай разрушили, вот и нет питательной среды, как раньше
[18:11:49] <ada_ru> (no111u3) Гомогенный рай возможен при наличие инфраструктуры
[18:12:07] <OCTAGRAM> а инфраструктуру-таки и не сделали
[18:12:50] <ada_ru> (no111u3) Ну это уже вина идеологов рая
[18:13:46] <OCTAGRAM> не знаю, кого можно такими назвать, и насколько это верно
[18:15:51] <ada_ru> (no111u3) И это тоже проблема языков
[18:16:05] <ada_ru> (no111u3) Когда нет их сподвижников
[18:16:29] <OCTAGRAM> или они не владеют философией происходящего
[18:21:10] <ada_ru> (no111u3) Хех
[18:33:53] <ada_ru> (I_vlxy_I)  отвечает (Максим) на <ну с тех пор в llvm …>
Начали бы в 2009 году, глядишь через 10 лет уже нечто работающее бы было. Интересно, сколько отметаемых идей сейчас окажутся полезными через 10.
[18:42:31] <OCTAGRAM> Помню, клеточный автомат один есть, устроен довольно просто: инициализируется двумерное поле одним из 16 цветов, и если в соседней клетке есть следующий цвет, она по циклу перекрашивается. https://habr.com/post/328314/ Если запускать, там несколько фаз можно выделить. Сначала в цветовой мешанине начинают расти одноцветные кристаллы. Они постоянно перекрашиваются бегущими волнами целиком, после перекрашивания они могут впитать с границы клетки нового цвета, потом следующего цвета, и так несколько раз. Если соседние кристаллы не соседних цветов, то поглотить друг друга они не могут, так и упираются, и зажимают между собой ещё мусор из пикселей несъедобного цвета. Параллельно развиваются другие процессы: где-то примерно в одном месте собираются все 16 цветов, и из таких точек вырастают спирали, в которых с каждой клеткой гарантированно соседствует клетка следующего цвета. Эти спирали гарантированно поглощают кристаллы, и они и формируют конечную картину.

Лисп-машины, экосистемы XEROX Star PC, NeXTSTEP в 80х, — это похоже на одноцветные кристаллы. Это могли быть самодостаточные вселенные, которым не нужно ничего знать о других вселенных. Одноцветные кристаллы, которым есть, куда расти. А сейчас эти кристаллы друг в друга упёрлись, в каких-то областях произошли слияния с перекрашиванием, к сожалению, не в пользу Ады. Система замерла в ожидании зарождения спиралей.