Size: a a a

Compiler Development

2020 May 07

KR

K R in Compiler Development
Алексей ayaye :)
если ssd поставить, вообще огонь. только сайты на js его убивают
SSD как раз есть, и памяти 8Гб. Но процессор там всё равно Core2 Duo 2.5Ghz. В 90-е это было совершенно немыслимо - держать столь древнюю машинку в качестве рабочей.
источник

А

Алексей ayaye :)... in Compiler Development
K R
SSD как раз есть, и памяти 8Гб. Но процессор там всё равно Core2 Duo 2.5Ghz. В 90-е это было совершенно немыслимо - держать столь древнюю машинку в качестве рабочей.
а я уже давно всем говорю, что для повседневных задач на производительность смотреть не надо, у любого хватает
источник

AZ

Alexander Zalutskiy in Compiler Development
K R
SSD как раз есть, и памяти 8Гб. Но процессор там всё равно Core2 Duo 2.5Ghz. В 90-е это было совершенно немыслимо - держать столь древнюю машинку в качестве рабочей.
У нас переход с 13" маков на 15" дало в 2 раза меньше времени сборки
источник

AZ

Alexander Zalutskiy in Compiler Development
А ещё индекс проекта весит 5-10GB
источник

KR

K R in Compiler Development
Сборка - это make, лучший язык для многопоточности. А однопоточная производительность более-менее одна и та же, если, конечно в 13" у вас не зарезаны кеши (такое сейчас бывает, что выпускают процессор с 512 кб на ядро, что катастрофически мало для компиляции).
источник

VS

Vasily Shapenko in Compiler Development
Make довольно страшен по сравнению с msbuild, например
источник

AZ

Alexander Zalutskiy in Compiler Development
K R
Сборка - это make, лучший язык для многопоточности. А однопоточная производительность более-менее одна и та же, если, конечно в 13" у вас не зарезаны кеши (такое сейчас бывает, что выпускают процессор с 512 кб на ядро, что катастрофически мало для компиляции).
В буке 15" совсем другой проц. В два раза потоков больше
источник

PS

Peter Sovietov in Compiler Development
K R
Я думаю, что:

1. По классикам зарплата программистов, как и другого пролетариата, падает => их можно нанимать больше и больше. Собственно, вы можете это видеть по пропихиванию Питона в финтех со сложной бизнес-логикой.

2. Как писал Саттер в 2005 Free lunch is over - однопоточное быстродействие очень давно не растёт, и некоторые даже стали об этом догадываться.
Ну, я даже больше скажу. Банальное увеличение числа ядер тоже давно не работает :)
источник

AY

Anton Yudintsev in Compiler Development
Vasiliy Tereshkov
Соорудил статически типизированный скриптовый язык Umka. Комментарии всячески приветствуются. Вдруг у него есть шанс стать полезным?

https://github.com/vtereshkov/umka-lang
А performance/memory foot print?
источник

KR

K R in Compiler Development
Peter Sovietov
Ну, я даже больше скажу. Банальное увеличение числа ядер тоже давно не работает :)
Кстати, в кровавом энтерпрайзе, по ощущениям, основное время тратится не на процессор, а на IO. Причём из-за неоптимизированности запросов.

Классический пример - большая система, обрабатывающая громадное количество одинаковых объектов, запрашивает одинаковые данные для них не пачками, а по одному. И все всё понимают, но там стек вызовов занимает 8 экранов, причём половина - объективно по делу (разные форматы и т.д.). То есть, невозможно просто переработать архитектуру так, чтобы происходило кеширование.

А даже если и переработать, то года через 3-4 изменятся условия, и пакетировать придётся что-то другое. То есть, это какая-та классическая задача по оптимизации dataflow. Но чего-то тут не хватает даже в каком-нибудь Хаскеле. Собственно, Хаскель тут при том, что в нём есть rewriting rules.
источник

A

Alexey in Compiler Development
Vasily Shapenko
Make довольно страшен по сравнению с msbuild, например
Да камон, make кажется просто няшей, особенно после того, как поработаешь с базелью. А уж гнутый, с его функциональным подходом, так вообще метамейк, можно сказать. :-)
источник

PS

Peter Sovietov in Compiler Development
K R
Кстати, в кровавом энтерпрайзе, по ощущениям, основное время тратится не на процессор, а на IO. Причём из-за неоптимизированности запросов.

Классический пример - большая система, обрабатывающая громадное количество одинаковых объектов, запрашивает одинаковые данные для них не пачками, а по одному. И все всё понимают, но там стек вызовов занимает 8 экранов, причём половина - объективно по делу (разные форматы и т.д.). То есть, невозможно просто переработать архитектуру так, чтобы происходило кеширование.

А даже если и переработать, то года через 3-4 изменятся условия, и пакетировать придётся что-то другое. То есть, это какая-та классическая задача по оптимизации dataflow. Но чего-то тут не хватает даже в каком-нибудь Хаскеле. Собственно, Хаскель тут при том, что в нём есть rewriting rules.
Должен же быть codesign — движение проектировщиков аппаратуры и создателей языков/компиляторов навстречу друг другу.
Сейчас вот предлагают различные варианты IR среднего уровня, из которых можно компилировать/синтезировать для специализированных вычислителей.

Посмотрите, например, на этот же стэнфордский Spatial — чувствуете семантический разрыв по сравнению с Haskell и Ко?
https://dl.acm.org/doi/pdf/10.1145/3079856.3080256?download=true
источник

PS

Peter Sovietov in Compiler Development
Anton Yudintsev
А performance/memory foot print?
Вот, кстати, чье проф. мнение как раз и хотелось услышать по разработанному ЯП!
Vasiliy Обратите внимание — это как раз Ваш более опытный коллега-конкурент ;)
источник

AY

Anton Yudintsev in Compiler Development
У меня для мнения недостаточно информации:)
Идея несомненно витает - gradual typing, strong statically typed, embeddable scripting language.

Но есть ещё performance, memory footprint, фичи (фп, генераторы, лямбды) и всё такое.

К синтаксису я любому равнодушен - го так го.

Рейтресер как пример - прекрасно, у daScript тоже такой есть:) но надо же и перф понимать, хотя бы в сравнении с lua/lujit
источник

KR

K R in Compiler Development
Peter Sovietov
Должен же быть codesign — движение проектировщиков аппаратуры и создателей языков/компиляторов навстречу друг другу.
Сейчас вот предлагают различные варианты IR среднего уровня, из которых можно компилировать/синтезировать для специализированных вычислителей.

Посмотрите, например, на этот же стэнфордский Spatial — чувствуете семантический разрыв по сравнению с Haskell и Ко?
https://dl.acm.org/doi/pdf/10.1145/3079856.3080256?download=true
Но это всё пока только одна часть компьютера - процессор, причём часто лишь одно ядро, да память. А вот как насчёт IO?

Спасибо за ссылку - интересная штука.
источник

VT

Vasiliy Tereshkov in Compiler Development
Anton Yudintsev
У меня для мнения недостаточно информации:)
Идея несомненно витает - gradual typing, strong statically typed, embeddable scripting language.

Но есть ещё performance, memory footprint, фичи (фп, генераторы, лямбды) и всё такое.

К синтаксису я любому равнодушен - го так го.

Рейтресер как пример - прекрасно, у daScript тоже такой есть:) но надо же и перф понимать, хотя бы в сравнении с lua/lujit
Производительность пока, увы, на уровне Питона.
источник

AT

Alexander Tchitchigi... in Compiler Development
K R
Кстати, в кровавом энтерпрайзе, по ощущениям, основное время тратится не на процессор, а на IO. Причём из-за неоптимизированности запросов.

Классический пример - большая система, обрабатывающая громадное количество одинаковых объектов, запрашивает одинаковые данные для них не пачками, а по одному. И все всё понимают, но там стек вызовов занимает 8 экранов, причём половина - объективно по делу (разные форматы и т.д.). То есть, невозможно просто переработать архитектуру так, чтобы происходило кеширование.

А даже если и переработать, то года через 3-4 изменятся условия, и пакетировать придётся что-то другое. То есть, это какая-та классическая задача по оптимизации dataflow. Но чего-то тут не хватает даже в каком-нибудь Хаскеле. Собственно, Хаскель тут при том, что в нём есть rewriting rules.
Для Haskell есть Haxl — его как раз кровавый энтерпрайз написал (Facebook). 😉
источник

AY

Anton Yudintsev in Compiler Development
Vasiliy Tereshkov
Производительность пока, увы, на уровне Питона.
Хм.
А какое планируемое применение?
В какой области?
источник

A

Alexey in Compiler Development
Anton Yudintsev
У меня для мнения недостаточно информации:)
Идея несомненно витает - gradual typing, strong statically typed, embeddable scripting language.

Но есть ещё performance, memory footprint, фичи (фп, генераторы, лямбды) и всё такое.

К синтаксису я любому равнодушен - го так го.

Рейтресер как пример - прекрасно, у daScript тоже такой есть:) но надо же и перф понимать, хотя бы в сравнении с lua/lujit
Ну, синтаксис хотя бы должен быть (никогда не понимал, как люди на лиспах пишут и не морщатся). В другую крайность (look at modern rust) тоже не стоит ударяться. Имхо лучший синтаксис у ML, лаконичный и читаемый, хотя, пожалуй, хаскелловского where мне в окамле часто не хватает.
источник

PS

Peter Sovietov in Compiler Development
Alexey
Ну, синтаксис хотя бы должен быть (никогда не понимал, как люди на лиспах пишут и не морщатся). В другую крайность (look at modern rust) тоже не стоит ударяться. Имхо лучший синтаксис у ML, лаконичный и читаемый, хотя, пожалуй, хаскелловского where мне в окамле часто не хватает.
where гораздо древнее, еще в гипотетическом ISWIM он был :)
источник