Size: a a a

Compiler Development

2020 March 08

M

MaxGraey in Compiler Development
Berkus Decker
это ж текстовый вариант spir-v
Нет. Текстовый вариант это wat у wasm к примеру или nasm. Это все таки яп, При чем тот же for они собираются делать через синтаксический сахар
источник

ЗП

Зигохистоморфный Препроморфизм in Compiler Development
MaxGraey
C# вдохновлялся Rust который в свою очередь вдохновлялся Ocaml
А в java просто поменяли «:» на «->» и сделали switch не стейтментом а вырожением)
Точно Раст?) А случаем не его сородичем F#?)
источник

AK

Andrei Kurosh in Compiler Development
«The regardless statement will probably not be used in most cases but exists to handle a specific case in SPIR-V. If you have an OpBranchConditional where both targets are the same block.»

Оператор безысходности?...
источник

AK

Andrei Kurosh in Compiler Development
MaxGraey
Нет. Текстовый вариант это wat у wasm к примеру или nasm. Это все таки яп, При чем тот же for они собираются делать через синтаксический сахар
const a : i32 = 2;
var i : i32 = 0; <1>
loop () {
 break if (i >= 4);

 a = a * 2;

 continuing {  <2>
   i = i + 1;
 }
}

Зачем тут вообще нужен «continuing»?
источник

M

MaxGraey in Compiler Development
Зигохистоморфный Препроморфизм
Точно Раст?) А случаем не его сородичем F#?)
F#:

match color with
   | 1  -> printfn "Red"
   | 2 -> printfn "Green"
   | 3 -> printfn "Blue"
   | _ -> ()

Rust:

match color {
   1 => println!("Red"),
   2 => println!("Green"),
   3 => println!("Blue"),
   _ => (),
}

На что больше похоже?
источник

M

MaxGraey in Compiler Development
Andrei Kurosh
const a : i32 = 2;
var i : i32 = 0; <1>
loop () {
 break if (i >= 4);

 a = a * 2;

 continuing {  <2>
   i = i + 1;
 }
}

Зачем тут вообще нужен «continuing»?
Вот тоже не понял
источник

M

MaxGraey in Compiler Development
Berkus Decker
это ж текстовый вариант spir-v
А еще вывод типов) (возможно)

https://github.com/gpuweb/gpuweb/issues/560
источник

λ

λoλdog in Compiler Development
эх, expr опциональный :(
источник

M

MaxGraey in Compiler Development
Или вот так предлагают:
let x = cast<i32>(1)
источник

M

MaxGraey in Compiler Development
let arrPtr: ptr<private, array<vec3<f32>,32>> =…

Думаете Rust или C++? А нет, wgsl!)
источник

PS

Peter Sovietov in Compiler Development
MaxGraey
Вот тоже не понял
Это просто текстовая "обертка" над структурными конструкциями управления SPIR-V. Там есть отдельный continue-блок.
источник

PS

Peter Sovietov in Compiler Development
Но в целом смешно, конечно. Особенно вот здесь: https://github.com/gpuweb/gpuweb/issues/566
источник

M

MaxGraey in Compiler Development
Ого, я этог оне видел 😂
источник

M

MaxGraey in Compiler Development
В целом я не поняимаю зачем городить все это? Понятно, что они хотят добиться какого то компросисса и быстрого парсинга, но выглядит это ужастно. Я думаю никто бы не был против если бы только байткод поддерживался, а дальше уже народ сам выберет как этот байткод получить из GLSL, HLSL, WHLSL, Rust или TS. Весь веб давно сидит на транспиляторах, так что это не проблема вообще
источник

PS

Peter Sovietov in Compiler Development
Вообще-то для SPIR-V есть и текстовое представление. И оно гораздо более удобное, чем тот же LLVM IR. Есть стандартный парсер, документы, описывающие синтаксис.
источник

M

MaxGraey in Compiler Development
Peter Sovietov
Вообще-то для SPIR-V есть и текстовое представление. И оно гораздо более удобное, чем тот же LLVM IR. Есть стандартный парсер, документы, описывающие синтаксис.
Да, я знаю очень похоже на LLVM IR но удобнее
источник

EM

Evgenii Moiseenko in Compiler Development
там первый коммент начинается с
источник

EM

Evgenii Moiseenko in Compiler Development
дожили
источник

EM

Evgenii Moiseenko in Compiler Development
теперь и покритиковать нельзя
источник

PS

Peter Sovietov in Compiler Development
Evgenii Moiseenko
теперь и покритиковать нельзя
В том числе из-за этого не так давно ушел один из ключевых разработчиков LLVM. https://quillette.com/2018/06/26/diversity-and-discrimination-in-open-source/
Но предлагаю, все-таки, тут далее не развивать оффтопик. Как говорил герой песни — "Just do as I say, don't do as I do" %)
источник