Size: a a a

Compiler Development

2019 December 30

AH

Ayrat Hudaygulov in Compiler Development
Вот кстати, тот же трансформ в одну строчку означает что нельзя будет сделать промежуточный бинд (например деконстракт тупля) и потом уже вычисление результата.

По замыслу автора надо писать два раза этот страшно вербозный трансформ в одну строчку.
источник

AH

Ayrat Hudaygulov in Compiler Development
И думать о том как же это чудовищно читабельно
источник

BD

Berkus Decker in Compiler Development
ну там вообще функции выглядят невероятно неудобными - если там больше чем одно умножение, этот код превратится в ад очень быстро
источник

AH

Ayrat Hudaygulov in Compiler Development
Berkus Decker
ну там вообще функции выглядят невероятно неудобными - если там больше чем одно умножение, этот код превратится в ад очень быстро
Честно говоря, его пример принта уже выглядит как ад
источник

BD

Berkus Decker in Compiler Development
Ayrat Hudaygulov
Честно говоря, его пример принта уже выглядит как ад
как тебе каррирование наоборот?
'hello' -> print 'world'
источник

BD

Berkus Decker in Compiler Development
фиг с ним с принтом, x -> rotate y z это бл что вообще
источник

M

MaxGraey in Compiler Development
Меня еще беспокоит то, что он в JS транспайлится. Тот же ReasonML на порядок красивее смотриться а BuckleScript еще и оптимальный JS на выхоже выдает не отягощенный абстракциями. И к тому же детище Facebook. И тем не менее абсолютно чужд что react-разработчикам, что даже любителям функциональщины. В общем, не очень понятно зачем это нужно)

А вот еще
«It is made to take advantage of multiple CPUs and CPU cores (parallelism) by default» и «Tensor programming». Это при том что он в JS транпайлиться?)
источник

M

MaxGraey in Compiler Development
Вся ленивость заключается в том, что на каждую операцию дергается async / await с мемоизацией иногда:
https://github.com/clio-lang/clio/blob/develop/internals/builtins.js#L378

Ух, я уже представляю как это все жутко будет тормозить
источник

AK

Andrei Kurosh in Compiler Development
Так ведь это не заменяет лямбды, тк применимо только к аргументам, которые мы сами передаем в функцию. Это в лучшем случае адский изворот чтобы не делать локальные переменные
источник

AT

Alexander Tchitchigin in Compiler Development
Peter Sovietov
"One day Phil phoned me up and announced that a) Erlang needed a type system, b) he had written a small prototype of a type system and c) he had a one year’s sabbatical and was going to write a type system for Erlang and “were we interested?” Answer —“Yes.”

Phil Wadler and Simon Marlow worked on a type system for over a year and the results were published in [20]. The results of the project were somewhat disappointing. To start with, only a subset of the language was type-checkable, the major omission being the lack of process types and of type checking inter-process messages."
К чести Филипа Уодлера можно добавить, что, по-видимому, вопрос типизации акторов в духе Erlang так и не давал ему покоя, поскольку за прошедшее с тех пор время он сильно развил направление Session Types.
источник

AG

Alex Gryzlov in Compiler Development
да, вадлер кучу статей про линейные типы написал
источник

PS

Peter Sovietov in Compiler Development
Alexander Tchitchigin
К чести Филипа Уодлера можно добавить, что, по-видимому, вопрос типизации акторов в духе Erlang так и не давал ему покоя, поскольку за прошедшее с тех пор время он сильно развил направление Session Types.
Session Types — штука хорошая. В минимальном виде это даже не типы, а спецификации протоколов взаимодействия. Помню, во время работы над SEAforth-чипами было много идей по верификации протоколов. Сами протоколы предлагалось задавать в духе регулярных выражений. Кажется, в поздних версиях Occam тоже было что-то подобное.
источник

AT

Alexander Tchitchigin in Compiler Development
Peter Sovietov
Session Types — штука хорошая. В минимальном виде это даже не типы, а спецификации протоколов взаимодействия. Помню, во время работы над SEAforth-чипами было много идей по верификации протоколов. Сами протоколы предлагалось задавать в духе регулярных выражений. Кажется, в поздних версиях Occam тоже было что-то подобное.
Session Types - это спецификации протоколов, выраженные в типах, т.е. позволяющие проверить, что код реально реализует необходимый протокол, а не занимается отсебятиной. 🤷‍♀️
источник

PS

Peter Sovietov in Compiler Development
Alexander Tchitchigin
Session Types - это спецификации протоколов, выраженные в типах, т.е. позволяющие проверить, что код реально реализует необходимый протокол, а не занимается отсебятиной. 🤷‍♀️
Это понятно, просто на уровне двух взаимодействующих ядер проверка "! w; ? w; end" и "? w; ! w; end" полезна, даже если w это просто универсальный тип машинного слова, которое помещается в общий регистр :)
источник

AT

Alexander Tchitchigin in Compiler Development
Peter Sovietov
Это понятно, просто на уровне двух взаимодействующих ядер проверка "! w; ? w; end" и "? w; ! w; end" полезна, даже если w это просто универсальный тип машинного слова, которое помещается в общий регистр :)
Но без привязки к коду есть несколько способов проверять протоколы и помимо Session Types. TLA+ в последнее время популярнее прочих в этой области.
источник

PS

Peter Sovietov in Compiler Development
Alexander Tchitchigin
Но без привязки к коду есть несколько способов проверять протоколы и помимо Session Types. TLA+ в последнее время популярнее прочих в этой области.
Есть некоторые простые и практичные акторные модели, где можно обойтись без TLA+. Например SDF. Штука крайне полезная в целом ряде предметных областей (а еще — красивая!) и там нужно статически решать задачу определения размеров входных и выходных буферов для каждого актора. И на этот счет еще в конце 80-х были разработаны соотв. математические подходы.
источник

PS

Peter Sovietov in Compiler Development
Смотрите, что я нашел: https://alexanius-blog.blogspot.com/2016/06/blog-post.html
источник

PS

Peter Sovietov in Compiler Development
(и у меня есть подобный список, надо бы объединить их на github, если автор не будет возражать)
источник

E

EgorBo in Compiler Development
https://reviews.llvm.org/rG109e4e3851e

интринсики для работы с матрицами подъехали в ллвм
источник

PS

Peter Sovietov in Compiler Development
EgorBo
https://reviews.llvm.org/rG109e4e3851e

интринсики для работы с матрицами подъехали в ллвм
А для комплексных чисел у них уже есть подобное? Они так типы данных для каждой предметной области собираются поддержать? :)
источник