Size: a a a

Compiler Development

2020 January 26

JC

Julian =) Coffee in Compiler Development
Раст тогда наверное и 1.0 не был
источник

M

MaxGraey in Compiler Development
Julian =) Coffee
Раст тогда наверное и 1.0 не был
А до 1.0 это был почти что другой язык
источник

BD

Berkus Decker 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++.
> Cargo is mandatory.
Временная проблема.

во-первых, не mandatory - можно вызывать rustc напрямую
во-вторых,не проблема - а преимущество
источник

BD

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

JC

Julian =) Coffee in Compiler Development
Может стоит хотя-бы прояснить, что именно за вещи, которые именно на Си пишут
источник

G

Gymmasssorla in Compiler Development
Berkus Decker
> Cargo is mandatory.
Временная проблема.

во-первых, не mandatory - можно вызывать rustc напрямую
во-вторых,не проблема - а преимущество
Но в секции он говорит, что rustc флаги unstable. Я про это
источник

M

MaxGraey in Compiler Development
Опа) После того как я опубликовал ссылку на эту статью здесь:
https://github.com/AssemblyScript/assemblyscript/issues/89#issuecomment-551351723

автор nim-а затащил реализацию уже к себе:
https://github.com/nim-lang/Nim/blob/devel/lib/system/cyclicrefs_v2.nim

Вот так и делись потом со всеми своим R&D =)
источник

МБ

Михаил Бахтерев in Compiler Development
Berkus Decker
не так же как в си они решаются, вот и всё, не надо натягивать
Они решаются, но семантического шума очень много. Может, в сравнении с практиками Си++ оно и выгоднее. Но в сравнении с Си громоздко
источник

BD

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

BD

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

BD

Berkus Decker in Compiler Development
это НЕ реализация раста, это просто транспилер "валидный Rust (проверенный rustc) в Си"
источник

А⚙

Антон ⚙️ in Compiler Development
Gymmasssorla
Дополни этот список несостыковками в названий функций в стдлибе и приколами из Pin (например, про Drop запиненной структуры)
А можно поподробнее про несостыковки?
источник

BD

Berkus Decker in Compiler Development
Julian =) Coffee
Ну там статейка, которой шесть лет
ну так и ерику уже много годиков, ему б на бейсике писать
источник

А⚙

Антон ⚙️ in Compiler Development
Господи, и сюда этот высер принесли
источник

А⚙

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

BD

Berkus Decker in Compiler Development
Gymmasssorla
Но в секции он говорит, что rustc флаги unstable. Я про это
ну как бе, это не значит что rustc использовать нельзя, просто только то что идиоты это делают, а умные люди используют карго, для своего же удобства.
источник

BD

Berkus Decker in Compiler Development
Антон ⚙️
Господи, и сюда этот высер принесли
ну раст ведь не замена С
источник

G

Gymmasssorla in Compiler Development
Антон ⚙️
А можно поподробнее про несостыковки?
https://doc.rust-lang.org/std/primitive.slice.html#method.get_unchecked_mut
https://doc.rust-lang.org/std/primitive.slice.html#method.as_mut_ptr

Должно быть либо get_unchecked_mut и as_ptr_mut, либо get_mut_unchecked и as_mut_ptr.

https://doc.rust-lang.org/std/primitive.slice.html#method.windows

Здесь можно было бы NonZeroUsize воспользоваться вместо паники. Но этот метод был стабилизирован после NonZeroUsize.
источник

А⚙

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

А⚙

Антон ⚙️ in Compiler Development
Berkus Decker
ну раст ведь не замена С
Пока что
источник