Size: a a a

Compiler Development

2020 February 11

PS

Peter Sovietov in Compiler Development
EgorBo
всё просто, ставишь автобан при упоминании Haskel и Rust и всё будет про компиляторы :)
У меня, увы, нет таких возможностей :) В принципе, я спокойно ко всему отношусь, чат есть чат. Меня даже больше удивляют люди из твиттера. "Зашел в чатик компиляторщиков. Вышел. Там все люди такие СТРАННЫЕ". И смотришь на твиттер такого "компиляторного чистоплюя", а у него в ленте тоже разнообразная свалка, и про компиляторы ничего нет. Вопрос в результате возникает, почему в твиттере-то можно, а в чате (где иногда все-таки по теме общение!) — нет? :)
источник

YS

Yuriy Syrovetskiy in Compiler Development
Алексей
там есть функции которые биндятся к объекту, функции которые просто так в объект положил к нему не биндятся, необходимое зло, чтобы не было того бардака как в JS с this
но в результате получился бардак
источник

M

MaxGraey in Compiler Development
Alexander Tchitchigin
На чём тогда компиляторы писать, если не на Haskell и не на Rust?! 😂
Ocaml!
источник

FO

FORTRAN ONE LOVE in Compiler Development
Alexander Tchitchigin
На чём тогда компиляторы писать, если не на Haskell и не на Rust?! 😂
На Fortran, конечно же!
источник

DP

Dmitry Ponyatov in Compiler Development
_________ _________
кобол - топ
а оно вообще в России где-то существует в живом виде?
ABAP вон кое-где попахивает, даже в нашем колхозе пара вакансий для стажоров есть
источник

KR

K R in Compiler Development
Алексей
питон не сложнее хаскеля
Ага.

def f(x = []):
  x.append(1)
  return x
источник

SS

Sergey Sverdlov in Compiler Development
Черт! Старый, седой... И это еще в 16-м году. Совсем же мальчиком был, когда Turbo Pascal сделал...
источник
2020 February 12

p

polunin.ai in Compiler Development
ilya sheprut @optozorax
знакомая ситуация...

а вообще существует хотя бы в каком-то языке подобная компиляция:

ну типо мы смотрим в коде библиотеки что функции А используют зависимость С, а функции Б не используют её, а юзер как использует только функции Б, значит компилировать зависимость С не надо

?

мне кажется это бы экспоненциально увеличило скорость сборки для больших проектов, особенно для больших компаний с монорепозиториями
Rust старается так делать, иначе билды были бы не по 2 минуты а по 10
источник

M

MaxGraey in Compiler Development
ilya sheprut @optozorax
знакомая ситуация...

а вообще существует хотя бы в каком-то языке подобная компиляция:

ну типо мы смотрим в коде библиотеки что функции А используют зависимость С, а функции Б не используют её, а юзер как использует только функции Б, значит компилировать зависимость С не надо

?

мне кажется это бы экспоненциально увеличило скорость сборки для больших проектов, особенно для больших компаний с монорепозиториями
Мы в AS так делаем. Собственно все компилируется лениво и DCE по сути бесплатный
источник

is

ilya sheprut @optozorax in Compiler Development
MaxGraey
Мы в AS так делаем. Собственно все компилируется лениво и DCE по сути бесплатный
ого, круто
а что такое AS, DCE?
это сложно было сделать?
источник

is

ilya sheprut @optozorax in Compiler Development
polunin.ai
Rust старается так делать, иначе билды были бы не по 2 минуты а по 10
где можно про это почитать? не верится что в расте такое есть
источник

p

polunin.ai in Compiler Development
ilya sheprut @optozorax
где можно про это почитать? не верится что в расте такое есть
В растбуке вроде читал в начальных главах
источник

is

ilya sheprut @optozorax in Compiler Development
polunin.ai
В растбуке вроде читал в начальных главах
Я вспомнил, в расте такого нет. Я однажды подключал к своей либе rusttype, а в приложении, которое использовало это либу не использовал ничего связанного с рендерингом текста. В итоге rusttype всё-равно скомпилился.
источник

p

polunin.ai in Compiler Development
ilya sheprut @optozorax
Я вспомнил, в расте такого нет. Я однажды подключал к своей либе rusttype, а в приложении, которое использовало это либу не использовал ничего связанного с рендерингом текста. В итоге rusttype всё-равно скомпилился.
А Rust ложит весь код всех зависимостей в свой бинарь?
источник

KR

K R in Compiler Development
polunin.ai
А Rust ложит весь код всех зависимостей в свой бинарь?
Крайне сомнительно.
источник

is

ilya sheprut @optozorax in Compiler Development
polunin.ai
А Rust ложит весь код всех зависимостей в свой бинарь?
не знаю, но зачем-то существует тулза twiggy, которая позволяет смотреть граф вызовов и находить никогда не используемые функции в wasm бинаре, или после wasm-strip размер моего бинаря крайне сильно сокращается
источник

p

polunin.ai in Compiler Development
ilya sheprut @optozorax
не знаю, но зачем-то существует тулза twiggy, которая позволяет смотреть граф вызовов и находить никогда не используемые функции в wasm бинаре, или после wasm-strip размер моего бинаря крайне сильно сокращается
В релизе или дебаге?
источник

is

ilya sheprut @optozorax in Compiler Development
polunin.ai
В релизе или дебаге?
в том то и дело, что релиз
источник

p

polunin.ai in Compiler Development
Не знаю, нужно поискать
источник

МБ

Михаил Бахтерев in Compiler Development
Yuriy Syrovetskiy
это ваша персональная привычка, со свойствами языков не связано
НууууУуу. Очень спорное утверждение. Когда в Haskell легко встретить четыре fmap и три <> в одном выражении t с свершенно разными смыслами. Выражение t, конечно, можно разобрать на языке функторов и моноидов, но для понимания вычислительго смысла t часто нужно потратить несколько часов, потому что сверху же ещё навалена кучка изощрённых расширений с нестандартными deriving-ами. И это проблема. В Си++ не такой бешенный автоматический уровень абстракций, обычно. Проблема не в сложности самого языка, а в том, как его используют. На Питоне тоже можно вывихнуть мозг читающему, но просто не принято это делать. В Haskell, к сожалению, другая культура разработки библиотек.
источник