Size: a a a

Compiler Development

2020 December 13

PS

Pavel Samolysov in Compiler Development
Berkus Decker
А в голый си собираются добавлять модули?
Не знаю, самому интересно, поэтому и спросил. Там они не так критичны как в С++, нет тонн кода в заголовках.
источник

BD

Berkus Decker in Compiler Development
Pavel Samolysov
Не знаю, самому интересно, поэтому и спросил. Там они не так критичны как в С++, нет тонн кода в заголовках.
Про модули разговор шел только в контексте с++ стандарта, насколько я знаю, к си не относящемуся. Возможно когда то соберутся и на си модули пилить, но это наверное больше для поддержки плюсов, чем само по себе очень полезно.
источник

PS

Pavel Samolysov in Compiler Development
Интересна история вопроса, си это условно 70е, придумали раздельную компиляцию с помощью заголовочных файлов. Но ведь были уже фортран и алгол, в них раздельной компиляции не было? Или уже были модули?
источник

SS

Sergey Sverdlov in Compiler Development
В Алголе не было, а Фортран целиком из раздельной (точнее, независимой) компиляции состоит.
источник

f

fldlg2 in Compiler Development
Старый C был настолько крут, что во многих случаях компилировался и с забытыми #include. Иногда даже правильно 😉
источник

XD

Xottab DUTY in Compiler Development
Ребят, стоит задача написать кросс-компилятор HLSL/GLSL/MSL. С чего стоит начать?
В плане теории, есть книги из серии Dragon book.
А если сразу в плане практики, как лучше организовать устройство компилятора? Особенно учитывая, что между языками есть сходства.
источник

PS

Pavel Samolysov in Compiler Development
Sergey Sverdlov
В Алголе не было, а Фортран целиком из раздельной (точнее, независимой) компиляции состоит.
А как в фортране один модуль узнает какие функции есть в другом?
источник

XD

Xottab DUTY in Compiler Development
Xottab DUTY
Ребят, стоит задача написать кросс-компилятор HLSL/GLSL/MSL. С чего стоит начать?
В плане теории, есть книги из серии Dragon book.
А если сразу в плане практики, как лучше организовать устройство компилятора? Особенно учитывая, что между языками есть сходства.
Сразу скажу, что имеющиеся компиляторы DXC/glslang не подходят, т.к. мои шейдеры они не могут скомпилить, а шейдеры менять нельзя.
Можно попробовать пропатчить эти компиляторы, но там тоже разобраться надо.. А мне и самому попробовать хочется.
источник

SS

Sergey Sverdlov in Compiler Development
Pavel Samolysov
А как в фортране один модуль узнает какие функции есть в другом?
Никак. Выясняется только при компоновке
источник

PS

Pavel Samolysov in Compiler Development
Sergey Sverdlov
Никак. Выясняется только при компоновке
А, понятно, тогда да, заголовки ненужны.
источник

BD

Berkus Decker in Compiler Development
fldlg2
Старый C был настолько крут, что во многих случаях компилировался и с забытыми #include. Иногда даже правильно 😉
ну да, ему форвард декларации были не нужны - все решалось при линковке)
источник

BD

Berkus Decker in Compiler Development
а ограничением на длину имени функции линковка могла быть невероятно веселой
источник

BD

Berkus Decker in Compiler Development
Xottab DUTY
Ребят, стоит задача написать кросс-компилятор HLSL/GLSL/MSL. С чего стоит начать?
В плане теории, есть книги из серии Dragon book.
А если сразу в плане практики, как лучше организовать устройство компилятора? Особенно учитывая, что между языками есть сходства.
источник

XD

Xottab DUTY in Compiler Development
Так shaderc внутри всё равно отсылает шейдеры в glslang, а про него я уже уточнил чуть выше.
источник

BD

Berkus Decker in Compiler Development
Xottab DUTY
Так shaderc внутри всё равно отсылает шейдеры в glslang, а про него я уже уточнил чуть выше.
Понятно, а что настолько нестандартные шейдеры?

Писать компилятор если тебе вот уже быстро надо парсить два языка шейдеров ты заколебешься, если никогда раньше этим не занимался.
источник

BD

Berkus Decker in Compiler Development
Ну и второе, нафиг нужен еще один компилятор шейдеров - пофикси уже имеющийся glslang
источник

XD

Xottab DUTY in Compiler Development
Berkus Decker
Ну и второе, нафиг нужен еще один компилятор шейдеров - пофикси уже имеющийся glslang
Персональный челлендж, так сказать. Написать свой компилятор. Только не Си, а HLSL->GLSL. 👽
источник

XD

Xottab DUTY in Compiler Development
Berkus Decker
Понятно, а что настолько нестандартные шейдеры?

Писать компилятор если тебе вот уже быстро надо парсить два языка шейдеров ты заколебешься, если никогда раньше этим не занимался.
Банально, не поддерживается пару интринсиков HLSL'ных, в одном файл в пути до инклуда используется обратный слэш, вместо прямого.. Ну и ещё по мелочи.
источник

BD

Berkus Decker in Compiler Development
эти мелочи можно пофиксить заслав PR в glslang
источник

XD

Xottab DUTY in Compiler Development
Там разбираться надо
источник