Size: a a a

Compiler Development

2020 January 26

G

Gymmasssorla in Compiler Development
Михаил Бахтерев
А что там читать? Какой-то примитивный планировщик. Улучшили сами относительно себя. Ну ок. Первая версия была отстойной. Что это доказывает? Меня интересует MFB-планирование для ядра.
Я подумал про планировщик футур.
источник

G

Gymmasssorla in Compiler Development
Alexander Tchitchigin
Но если в Rust пришлось всё боксить, то ведь и на C пришлось бы всё malloc'ать - нет?
Мощность языка не позволяет без оверхеда делать некоторые вещи. Например, не позволяет определить асинхронную функцию на трейте.
источник

AV

Alexander Vershilov in Compiler Development
Не боксить там можно, но тогда state машины ужасными получаются, с async/await правда ужасы на себя уже компилятор берёт
источник

МБ

Михаил Бахтерев in Compiler Development
Alexander Tchitchigin
Но если в Rust пришлось всё боксить, то ведь и на C пришлось бы всё malloc'ать - нет?
Ну. В некотором смысле, да. Но обычно делается список из свободных структур, и кому надо, оттуда вынимет элементы.
источник

M

MaxGraey in Compiler Development
Alexander Vershilov
Не боксить там можно, но тогда state машины ужасными получаются, с async/await правда ужасы на себя уже компилятор берёт
Ну в Раст когда дело доходит до рекурсивных структур вообще все очень страшно становиться, если придерживаться идеоматичной линии партии
источник

МБ

Михаил Бахтерев in Compiler Development
MaxGraey
Ну в Раст когда дело доходит до рекурсивных структур вообще все очень страшно становиться, если придерживаться идеоматичной линии партии
Вот вот. Особенно с обратными ссылками когда
источник

__

_________ _________ in Compiler Development
источник

G

Gymmasssorla in Compiler Development
> C is the most portable programming language.
Соглашусь, но это временная проблема.

> C has a spec.
Тоже временная проблема.

> C has many implementations.
Опять же, временная проблема. У Rust уже есть несколько реализаций.

> Cargo is mandatory.
Временная проблема.

> Concurrency is generally a bad thing.
Нет аргументов.

> Safety.
Существует c2rust, с помощью которого можно транслировать Си-код в небезопасный Rust, а потом идиоматизировать его руками. Не думаю, что ошибок будет в будущем больше с Rust.

> Consider Go, which has had a lot of success in supplanting C for many problems.
Golang - скорее замена скриптовым языкам, не C/C++.
источник

FO

FORTRAN ONE LOVE in Compiler Development
Михаил Бахтерев
Интересно, а в Фортране как?
Так же как и в С
источник

DF

Dollar Føølish in Compiler Development
Какая то каличная статья
источник

G

Gymmasssorla in Compiler Development
Dollar Føølish
Какая то каличная статья
Да
источник

JC

Julian =) Coffee in Compiler Development
2 features per year
У Go есть фичи?
источник

МБ

Михаил Бахтерев in Compiler Development
Gymmasssorla
> C is the most portable programming language.
Соглашусь, но это временная проблема.

> C has a spec.
Тоже временная проблема.

> C has many implementations.
Опять же, временная проблема. У Rust уже есть несколько реализаций.

> Cargo is mandatory.
Временная проблема.

> Concurrency is generally a bad thing.
Нет аргументов.

> Safety.
Существует c2rust, с помощью которого можно транслировать Си-код в небезопасный Rust, а потом идиоматизировать его руками. Не думаю, что ошибок будет в будущем больше с Rust.

> Consider Go, which has had a lot of success in supplanting C for many problems.
Golang - скорее замена скриптовым языкам, не C/C++.
Не в этом всё дело, а в том, что Rust наворачивает ограничения и конструкции, которые, в общем-то не нужны там, где пишут на Си. И они больше мешают, чем помогают. Сначала нужно наработать примеры, как решать типовые сишные задачи эффективно. Пока решения показывают неэффективные. В этом проблема.
источник

AT

Alexander Tchitchigin in Compiler Development
Julian =) Coffee
2 features per year
У Go есть фичи?
Low-pause GC is a feature. Этого у Go не отнять.
источник

__

_________ _________ in Compiler Development
Михаил Бахтерев
Не в этом всё дело, а в том, что Rust наворачивает ограничения и конструкции, которые, в общем-то не нужны там, где пишут на Си. И они больше мешают, чем помогают. Сначала нужно наработать примеры, как решать типовые сишные задачи эффективно. Пока решения показывают неэффективные. В этом проблема.
+
источник

__

_________ _________ in Compiler Development
а там кстати как растовое комьюнити устрое у них пропозалы на импрувмент проносятся как то?
источник

JC

Julian =) Coffee in Compiler Development
Хотя у Go вроде как канкаренси в язык впилено, это можно считать фичей.
источник

__

_________ _________ in Compiler Development
Михаил Бахтерев
Не в этом всё дело, а в том, что Rust наворачивает ограничения и конструкции, которые, в общем-то не нужны там, где пишут на Си. И они больше мешают, чем помогают. Сначала нужно наработать примеры, как решать типовые сишные задачи эффективно. Пока решения показывают неэффективные. В этом проблема.
может лучше как раньше у джавы было типа j2(me,ee ... etc) типа реализации компилятора разнести между платформами где ограничения существенны а где нет
источник

AT

Alexander Tchitchigin in Compiler Development
Как слышу, так пишу - извините! 😂
источник

G

Gymmasssorla in Compiler Development
Михаил Бахтерев
Не в этом всё дело, а в том, что Rust наворачивает ограничения и конструкции, которые, в общем-то не нужны там, где пишут на Си. И они больше мешают, чем помогают. Сначала нужно наработать примеры, как решать типовые сишные задачи эффективно. Пока решения показывают неэффективные. В этом проблема.
Значит автор как-то свою мысль выразил не совсем прямо
источник