Comdiv писал(а):
Не помню, было ли это где. В чём была мотивация сделать LLVM версию вдобавок к компиляции через С?
Comdiv писал(а):
Я повторю, что это достижимо и через clang - соответствующий frontend к LLVM. Что сверх этого?
И за изменениями от Apple Вы не угонитесь, а WebAssembly лучше транслировать напрямую.
Я все эти мысли формулировал раньше, в докладах на днях Оберона в связном виде.
1. Резервирование. Мы живем в конкурентном мире. Даже природа резервирована: две руки, например. При этом левая рука ничего не дает сверх правой не дает. Столько лет я сталкиваюсь, что задачи нужно решать вчера и теми силами, которые есть в данный момент. Я не могу даже и предположить, какая задача у меня возникнет завтра, и что мне будет лучше для нее использовать: Omb, Omf или Oml.
2. Диверсификация. Мы живем в диверсифицирванном мире. У нас есть две ноздри и еще рот. Отказ одной из систем не даст нам задохнуться. Вот и у компиляторов/загрузчиков могут быть отказы/ошибки, а пользоваться ими нужно вчера. Это вопрос выживаемости.
3. Различия. Omf требует инфраструктуры gcc (clang, cl). Но продукты мы, как предприятие, поставляем Заказчику без исходников и среды разработки. Но если часть средств, как в BlackBox, требует динамической разработки, редактирования и подгрузки, то проще это делать, через библиотеку LLVM или натив Omb. С Oml можно напрямую генерить объектник и с ним работать, как с Omb.
3.1 Сборка объектников Omf из-под среды BlackBox выдает огромную кучу Warning'ов, и непонятно как с этим жить, работать из среды - неудобно. А еще на разных компиляторах и платформах.
4. Оптимизация кода. На сегодня используемая в версии LLVM 5.0 оптимизация кода уступает gcc. Что будет с версией 11 - не представляю. Что будет с разными архитектурами - тоже неясно.
5. Погоня за Apple. Погоня бессмысленна, догнать, чтобы дышать в спину? Нам нужно выживать в условиях Apple.
6. О постижении истины. Я, как-то приближаясь, к возрасту Сократа (только к возрасту), все дальше от постижения истины. Поэтому, говорить о том, какой их подходов будет жить, затрудняюсь. Как и затрудняюсь сказать, будет ли жить кот Шредингера. Условно примем, что Omb, Omf, Oml - это три кота Шредингера разных пород, находящиеся в клетке с любезно предложенной Вам крупицей с неизвестной функцией распада. Выжить должен хотя бы один.
6. Стратегия. По крайней мере, какая-то (плохая или хорошая) стратегия была заявлена, и я ей честно следую. Если мульти-бэкенды, есть версия 1.1, и есть задачи, которые ими решаются. Да, признаюсь, каюсь, я не стал тогда экономить на бэкендах: сделал три, а не 1 или 2. И до сих пор считаю, поступил правильно.