ger_kar писал(а):Во первых я писал не про компилятор, а про сладкую парочку компилятор+линковщик
Тогда какого фига ты поставил минус языкам Си/Си++? Линковщик не имеет никакого отношения ни к компилятору, ни к какому-либо из любых существующих в мире языков (включая Си и Си++).
ger_kar писал(а):используя информацию из TLB делается через одно известное место на ж...
Нет. Это делается единственным правильным путём. Есть языки, которые стандартизирются, и для которых выпускают стандарты. Стандарт — это святое. Может быть пятьдесят миллиардов компиляторов от разных фирм, но если все они соответствуют стандарту, то одинаковый код скомпилировавшись на всех них даст одинаковый результат.
А если бы была куча компиляторов, и каждому нужен бы был немножечко-свой видоизменённый язык Си, это вообще никому не было бы нужно.
Так вот, язык Си один. Един. И его природа такова, что любая сущность, к которой есть обращение в коде, должна быть явно задекларирована. Задекларирована не святым духом, а строчкой на языке Си/Си++. Поэтому если #importlib не генерировал промежуточных файлов, то получилось бы, что есть строчки, обращающиеся к сущности, но нигде нет строчек, в которых сущность объявляется.
Это недопустимо. И даже недопустимость этого недопустимо подвергать малейшему сомнению. Точка.
ger_kar писал(а):Ведь VB используя TLB никакие хидеры сначала не лепит.
Причём тут VB? VB это вещь совершенно иного порядка. Критически иного. Настолько, что упоминать его в рамках этой беседы вообще нельзя.
ger_kar писал(а):Одно дело, когда Antonary для себя делает инструмент для генерации TLB подобный принцип и друге, когда это делает такая большая корпорация. Почему-бы было не сделать нормальную полноценную поддержку TLB, которая фактически могла бы заменить и хидеры и либы.
Потому что это идеологически неправильно. Если ты не понимаешь идеологии, а вернее сказать, ты попросту не чувствуешь идеологии, то это не значит, что на пустом месте, которое в реальности вовсе не пустое, нужно строить свои воздушные замки.
ger_kar писал(а):Мне кажется если бы ты это делал вместо MS, ты бы этим путем и пошел и сделал бы это как следует, а не абы как, как это сделали в MS.
Аргхг!! Как будто бы MS имеет какие-то привилегии решать, как устроен язык Си (и С++), как устроена модель компиляции и тому подобное.
Есть схема. Устоявшаяся. Есть 237 языков, от L1 до L237. Есть 12475 компиляторов для этих языков. На какие-то языки приходится несколько разных компиляторов. Есть 900 исходных файлов на разных языках (их множества 237 языков). Некоторые файлы их этих 900 написаны на одинаковом языке. Есть 49 линкеров, линкующих исполняемые файлы под 27 совершенно разных операционных систем.
И суть схемы в том, что для любого из 900 исходных файлов можно применить любой из 12475 компиляторов (лишь тех из них, что соответствуют языку конкретно взятого исходного файла). В результате получится 900 объектных файлов. Совершенно одинаковых и никак в теории не зависящих от того, какой из 237 языков (и 12475 компиляторов) использовался для создания каждого из них. А потом можно взять любой из 49 линкеров и слинковать эти 900 объектных файлов в один исполняемый файл под любую из 27 совершенно разных операционных систем.
В этой абсолютно универсальной схеме, не заморачивающейся ни на конкретных языках программирования, ни на конкретных компиляторах, ни на конкретных линковщиках, ни на конкретных аппаратных платформах, ни на конкретных программных платформах... в ней места такой невероятно узкоспециальной вещи как TLB.