Size: a a a

Compiler Development

2021 April 20

AT

Alexander Tchitchigi... in Compiler Development
Переслано от Gally Torres
источник

TS

Timur Safin in Compiler Development
Кайф!
Но странно они продают, что обязательно надо было стать self-hosted на zig, чтобы сделать патчинг екзешников. Кажется, что при желании такое же можно было принести и в llvm
источник

AT

Alexander Tchitchigi... in Compiler Development
Если уж для этого нужно было втащить новые интрукции в DWARF... То всё равно нужно их поддержку дописывать или в LLVM или к себе. Кроме того, там ещё пафос в сильном сокращении времени компиляции в принципе после избавления от LLVM. Который, как я понял, они всё равно используют для release builds.
источник

M

MrSmith in Compiler Development
Кто писал toy компилятор на mlir, выдает ошибку fatal error: mlir/IR/BuiltinLocationAttributes.h.inc: No such file or directory.
Вроде где то мельком читал что это файлы генерируемые TableGen'ом, но это пока не точно
источник
2021 April 21

AT

Alexander Tchitchigi... in Compiler Development
Вышел GraalVM 21.1

В нём Node.js обновлена до версии 14.16.1, добавлена совместимость с итераторами и буферами из других языков, добавлена экспериментальная поддержка #WebAssembly JavaScript Interface. Скорость интерпретатора WebAssembly увеличена более чем в 10 раз, добавлена поддержка WASI, кастомных секций.

https://medium.com/graalvm/graalvm-21-1-96e18f6806bf
https://www.graalvm.org/release-notes/21_1/
источник

IP

Iaroslav Postovalov in Compiler Development
источник

AK

Andrei Kurosh in Compiler Development
Зачем нужна нода в рантайме джавы? :0
источник

AT

Alexander Tchitchigi... in Compiler Development
Вы так спрашиваете, как будто вообще не в курсе, что такое GraalVM и какая инфраструктура вокруг него. 😊
источник

AK

Andrei Kurosh in Compiler Development
Написано, что GraalVM является реализацией JVM и поддерживает помимо джавы некоторые другие языки, в частности JS, но я искренне предполагал, что он компилирует их в байт-код JVM и исполняет единообразно, а наличие отдельного рантайма ноды в это предположение как-то не вписывается
источник

P

Pavel in Compiler Development
Можно использовать жава либы проще и шарить данные
источник

DP

Dmitry Ponyatov in Compiler Development
вот неплохой вводный обзорчик попался: https://habr.com/ru/company/haulmont/blog/433432/
источник

AT

Alexander Tchitchigi... in Compiler Development
GraalVM — это JIT, написанный на Java. Плюс дофига всякого вокруг. Реализация самой Java (JDK) там почти постольку поскольку. Поэтому поддерживается кучка разных языков, включая Java, JS, Python, R + более-менее произвольный LLVM bitcode (а значит всё, что было в него скомпилировано).
источник

AK

Andrei Kurosh in Compiler Development
Он обеспечивает взаимодействие между языками, которые выполняются каждый на своем рантайме, и одним из таких рантаймов является нода? Или все-таки GraalVM и Truffle - это как CLR и DLR в дотнете?
источник

AT

Alexander Tchitchigi... in Compiler Development
Второе. Эти языки (и куски инфраструктуры) реализованы поверх GraalVM.
источник

AK

Andrei Kurosh in Compiler Development
Тогда вопрос остается: что в этой схеме делает непосредственно рантайм ноды?
источник

AT

Alexander Tchitchigi... in Compiler Development
Что значит "рантайм ноды"? Где там было про рантайм ноды?
источник

AK

Andrei Kurosh in Compiler Development
источник

AT

Alexander Tchitchigi... in Compiler Development
Так и где слово рантайм? 😉
источник

AT

Alexander Tchitchigi... in Compiler Development
Node.js — это ж вообще не столько рантайм (который в "обычной" Node.js — V8 + uv) сколько набор интерфейсов/библиотек.
источник

AK

Andrei Kurosh in Compiler Development
Или имелось в виду, что оно умеет запускать скрипты, совместимые с nodejs новой версии?
источник