Size: a a a

Compiler Development

2021 May 13

П

Пух in Compiler Development
Его недавно просто в неовим добавили, вроде даже в стейбле нет)
источник

K

Kir in Compiler Development
О! Это прогресс
источник

П

Пух in Compiler Development
таваще, лсп клиент добавили, луа добавили, триситтер добавили. Ща кааак заживём xD
источник

ВМ

Виталий Медоваров... in Compiler Development
Классная новость действительно. Когда я тыкал три-ситтер он мне очень понравился
источник
2021 May 14

DP

Dmitry Ponyatov in Compiler Development
Чтобы не качать каждый раз при загрузке один и тот-же код ходовых библиотек, а линковаться на клиенте с библиотеками скачанными один раз. Элементарно не жрать трафик, время и батарею, особенно на мобиле.
источник

ZB

Zalim Bashorov in Compiler Development
Для этого вполне подходят wasm файлы.
Но прям глобально в вебе так сейчас редко делают. Обычно в проде минифицированная, оптимизированная под конкретные страницы сборки/бандлы. В пределах одного сайта конечно выделяются общие куски которые шарятся.
источник

ВМ

Виталий Медоваров... in Compiler Development
Мне всегда казалось что задача закешировать штуки скачиваемые из интернетов лежит не на веб разработчиках, а на веб браузерах
источник

ДК

Дмитрий К in Compiler Development
Всего этого думаю можно добиться и без прибивания гвоздями к Котлину, а сделав свою более высокоуровневую альтернативу llvm. Тогда можно было бы этот бэкенд использовать не только с Котлином.
источник

ДК

Дмитрий К in Compiler Development
А почему? иммутабельнось даёт тут несколько преимуществ:
- проще дебажить трансформации, ибо есть дерево до и после
- экономия ресурсов за счёт переиспользования поддеревьев без их копиравания
источник

ДК

Дмитрий К in Compiler Development
Это уже и для js не работает во имя безопасности.
источник

ZB

Zalim Bashorov in Compiler Development
В данном случае некоторой заменой может быть https://github.com/WebAssembly/binaryen
Можно сделать что-то и более высокоуровневое, но нужно ли?
источник

M

MaxGraey in Compiler Development
многие пытались. Например libfirm. Потратили более 16 лет, но так и не стали популярными, а то количество таргетов, которое поддерживают просто смехотворно по сравнению с LLVM не говоря уже про GCC
источник

AK

Andrei Kurosh in Compiler Development
Лол, «экономия ресурсов за счет переиспользования частей» в качестве преимущества иммутабельных структур перед мутабельными - это сильно
источник

M

MaxGraey in Compiler Development
А вы кстати планируете контрибутить в Binaryen?
источник

ДК

Дмитрий К in Compiler Development
Всегда можно использовать ллвм в качестве бэкенда для бэкенда, если что-то ещё не поддерживается.
источник

M

MaxGraey in Compiler Development
Чего? И зачем тогда от LLVM отказываться и городить такого монстра? И мало того что тянуть LLVM так еще и тянуть какой-то кастомный бэк
источник

ZB

Zalim Bashorov in Compiler Development
Прям конкретных планов сейчас нет, но не исключаем такую необходимость/возможность. Да и в целом, для пользы проекту можем поконтрибютить куда угодно.
источник

M

MaxGraey in Compiler Development
Просто есть пару кейсов до которых все руки не дойдут
https://github.com/WebAssembly/binaryen/issues/3263
https://github.com/WebAssembly/binaryen/issues/1871
https://github.com/WebAssembly/binaryen/issues/3854

но которые пригодились бы всем
источник

ДК

Дмитрий К in Compiler Development
Он работает напрямую с байткодом. Соответственно ему доступны лишь низкоуровневые оптимизации. Высокоуровневые же в этом случае придётся реализовывать во фронтенде. Но это отсекает от них все другие языки. Поэтому хорошо бы иметь высокоуровневый мидленд не привязанный к конкретному языку.
источник

ДК

Дмитрий К in Compiler Development
Это для переходного этапа. Список нативно поддерживаемых таргетов постепенно разрастётся.
источник