Size: a a a

WebAssembly — русскоговорящее сообщество

2021 January 20

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
Т.е. IR для Binaryen это не LLVM (и не MLIR)
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
Тут было обсуждение нового IR для Binaryen, кажется что предлагалось что-то графовое, но не CPS (это в Хаскелле например), но может у меня склероз и это был CPS
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Anon
Почитал твитр. Получаемся AS будет компилить диалект тайпскрипта с помощью LLVM в MLIR ? Звучит жоска.
От куда такие выводы?
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Anon
И потом из MLIR в Wasm с помощью binaryen, получается.
Нет. Идея в том, что бы добавить middle IR. После которого уже будет binaryen. Но так же можно будет и прикрутить MLIR/LLVM если нужна будет именно нативная сборка, но это так возможные очень далекие планы. Сейчас просто такое проделать будет непросто. А вот с новым промежуточным представлением это станет по крайней мере намного более вероятным, но основная идея конечно не в этом
источник

A

Anon in WebAssembly — русскоговорящее сообщество
А так тоесть это Binaryen-овский IR или свой собственный ?
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Petr Penzin
Тут было обсуждение нового IR для Binaryen, кажется что предлагалось что-то графовое, но не CPS (это в Хаскелле например), но может у меня склероз и это был CPS
Не помню такого. Но это не чистый CPS, а графовый CPS без необходимости соблюдать строгий порядок определений. Собственно SoN только не на базе SSA, а на базе CPS. И да, он отлично подходит как для функционального так и мультипарадигменного языка
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Anon
А так тоесть это Binaryen-овский IR или свой собственный ?
свой собственный. Binaryen - это бекенд. А работа идет над миддлендом)
источник

A

Anon in WebAssembly — русскоговорящее сообщество
Тогда ясен, а то от слова LLVM страшно стало
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
MLIR, SoN, RVSDG, Rust MIR - это все по большему счету графовые middle IR (MIR)
LLVM, Binaryen, Cranelift IR - это бэкенды использующие low-level IR (LIR)

У того же раста их например три: HIR, MIR, LIR (LLVM). И это все условно, у того же Binaryen и Cranelift еще несколько представлений в свою очередь на разных этапах кодогенерации. Короче, сейчас компиляторы очень сложные и многоуровненные
источник

AT

Alexander Tchitchigi... in WebAssembly — русскоговорящее сообщество
источник

AT

Alexander Tchitchigi... in WebAssembly — русскоговорящее сообщество
В качестве слегка упрощённой схемы. 😄
источник

D

Draft in WebAssembly — русскоговорящее сообщество
Слава богу я фронтендер
источник

AT

Alexander Tchitchigi... in WebAssembly — русскоговорящее сообщество
Draft
Слава богу я фронтендер
Нда? Вы схему работы Redux видели? 😂
источник

D

Draft in WebAssembly — русскоговорящее сообщество
Alexander Tchitchigin
Нда? Вы схему работы Redux видели? 😂
Не думаю что там что-то сложное, раз есть тестовое задание "написать свою реализацию redux"
источник

AT

Alexander Tchitchigi... in WebAssembly — русскоговорящее сообщество
Draft
Не думаю что там что-то сложное, раз есть тестовое задание "написать свою реализацию redux"
Тестовое задание "напишите свой компилятор" тоже будет сильно отличаться от CakeML/AssemblyScript/etc.
источник

D

Draft in WebAssembly — русскоговорящее сообщество
Alexander Tchitchigin
Тестовое задание "напишите свой компилятор" тоже будет сильно отличаться от CakeML/AssemblyScript/etc.
Стоп
источник

D

Draft in WebAssembly — русскоговорящее сообщество
Это демагогия
источник

D

Draft in WebAssembly — русскоговорящее сообщество
Я говорю про реальные случаи, а ты про предполагаемые
источник

D

Draft in WebAssembly — русскоговорящее сообщество
Ты видел тестовое "напишите компилятор"?
источник

AT

Alexander Tchitchigi... in WebAssembly — русскоговорящее сообщество
У меня валяется пара компиляторов -- и там ни одного IR вообще нет.
источник