Size: a a a

Compiler Development

2020 December 09

BD

Berkus Decker in Compiler Development
➤ ls /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/
…rimental/algorithm   …rimental/forward_list  …rimental/map              …rimental/set          …rimental/unordered_map  …rimental/__config
…rimental/coroutine   …rimental/functional    …rimental/memory_resource  …rimental/simd         …rimental/unordered_set  …rimental/__memory
…rimental/deque       …rimental/iterator      …rimental/propagate_const  …rimental/string       …rimental/utility
…rimental/filesystem  …rimental/list          …rimental/regex            …rimental/type_traits  …rimental/vector

олсо

➤ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/module.modulemap

есть модули
источник

PS

Pavel Samolysov in Compiler Development
Все, понял, не знал, что у них другой номер версий. Я говорил про  llvm-project.
источник

BD

Berkus Decker in Compiler Development
filesystem уже перенесен в оснвные инклюды. так что там сейчас с++17
источник

BD

Berkus Decker in Compiler Development
Pavel Samolysov
Все, понял, не знал, что у них другой номер версий. Я говорил про  llvm-project.
llvm-project-staging это то что эпол отдает обратно в апстрим llvm из своих свифтовых и армовых оптимизаций
источник

M

MrSmith in Compiler Development
Liber Azerate
А что легче и лучше для написания транслятора какого-нибудь языка в LLVM IR? Написать руками самому или использовать LLVM API? Если за спиной разве пара глав книги дракона и времени не особо много
Конечно IR, если с IR, полноценный компилятор си примерно полтора месяца, если писать свой код ген то ещё сверху 2 месяца на кодоген и ещё месяц на отладку. Можно быстрей, но нужна четыре руки, тогда в теории можно осилить за месяц
источник

LA

Liber Azerate in Compiler Development
MrSmith
Конечно IR, если с IR, полноценный компилятор си примерно полтора месяца, если писать свой код ген то ещё сверху 2 месяца на кодоген и ещё месяц на отладку. Можно быстрей, но нужна четыре руки, тогда в теории можно осилить за месяц
Нет, генерировать IR я собирался в любом случае, вопрос был только о том, делать это руками или нет
источник

M

MrSmith in Compiler Development
Лучше нет
источник

M

MrSmith in Compiler Development
Мне на ум приходят 3 причины делать руками, скорость если делается однопроходных компиль, но кого волнует скорость, джит и если делать дамп IR
источник

M

MrSmith in Compiler Development
Я думаю все современные компили так или иначе инкрементальные или пытаются такими быть, не знаю сколько времени занимает холодный старт но по мне реализация быстрого прохода это игрушка для богатых
источник

K

Kir in Compiler Development
Liber Azerate
А что легче и лучше для написания транслятора какого-нибудь языка в LLVM IR? Написать руками самому или использовать LLVM API? Если за спиной разве пара глав книги дракона и времени не особо много
Легче написать транслятор в C, а из C уже дальше
источник

K

Kir in Compiler Development
Сделай сначала интерпретатор языка
источник

а

а это кто in Compiler Development
Спасибо большое)
источник

t

trsfrm2smgen in Compiler Development
а это кто
Спасибо большое)
:)
источник
2020 December 10

а

а это кто in Compiler Development
Liber Azerate
А что легче и лучше для написания транслятора какого-нибудь языка в LLVM IR? Написать руками самому или использовать LLVM API? Если за спиной разве пара глав книги дракона и времени не особо много
Всё-таки мы так и не обсудили эту тему) Интересно, какие есть юзкейсы где компилятор генерирует LLVM IR в текстовом виде и потом передаёт в llc или lli. Кто-то вообще так делает? По-моему такой способ лучше альтернативы (использование C++ LLVM API) когда ты программируешь не на C++ и имеешь трудности с биндингом C++ либ
источник

M

MrSmith in Compiler Development
а это кто
Всё-таки мы так и не обсудили эту тему) Интересно, какие есть юзкейсы где компилятор генерирует LLVM IR в текстовом виде и потом передаёт в llc или lli. Кто-то вообще так делает? По-моему такой способ лучше альтернативы (использование C++ LLVM API) когда ты программируешь не на C++ и имеешь трудности с биндингом C++ либ
Маловероятный кейс
источник

E

EgorBo in Compiler Development
это примерно как эмитить ассемблер в текстовом виде
источник

E

EgorBo in Compiler Development
для студенческой лабы - пойдет
источник

MM

Mikhail Maltsev in Compiler Development
EgorBo
это примерно как эмитить ассемблер в текстовом виде
GCC, вон, не стесняется так делать.
источник

E

EgorBo in Compiler Development
когда надо ассемблер показать юзеру по запросу? да
источник

а

а это кто in Compiler Development
EgorBo
это примерно как эмитить ассемблер в текстовом виде
Я думал все компиляторы так и делают, хаха
источник