LINUX.ORG.RU

Rust 1.4

 ,


2

5

29 октября вышла очередная версия языка программирования Rust, разрабатываемого Mozilla совместно с сообществом.

Rust — язык общего назначения, компилируемый и мультипарадигменный, позиционируется как альтернатива С/С++.

Основные изменения:

  • ~1200 исправлений.
  • Поддержка двух ABI (Application Binary Interface), кроме привычного GNU toolchain добавлена поддержка 64-bit MSVC ABI.
  • Компилятор более не использует morestack.
  • Значительные изменения в стандартной библиотеке.
  • Улучшено поведение ассоциированных типов.

Следующий релиз намечен на 10 декабря 2015.

Релиз 1.4 на Github

>>> Подробности

★★

Проверено: Shaman007 ()
Последнее исправление: Klymedy (всего исправлений: 2)

Ответ на: комментарий от anonymous

Традиция включать в стандартные библиотеки языков генераторы по умолчанию, поощряющая их бездумное использование некомпетентными разработчиками, привела не к одной уязвимости, и ещё не к одной приведёт.

Мне кажется, что ключевое тут «бездумное использование», а вовсе не наличие рандома из коробки. Во многих случаях нюансы не особо важны да и кто мешает сделать продвинутый интерфейс? В плюсах (теперь) нормально сделано на твой взгляд? Думаю, что и разработчики раста могли бы сделать не хуже.

DarkEld3r ★★★★★
()
Ответ на: комментарий от anonymous

Вот сформулируйте требования и подключите самый нужный.

Дык, очевидно, что криптография это отдельный разговор, но кто мешает иметь простенький ГПСЧ аля pcg/xorshift с пометкой в документации о неприменимости для задач криптографии.

поощряющая их бездумное использование некомпетентными разработчиками

Да особо ничего не поменялось — теперь этому разработчику просто придётся прописать extern crate rand и добавить строчку в Cargo.toml. Или Вы думаете, что стоит вынести отдельно рандомайзер и — о чудо — быдлокодеры начнут читать маны?

loyd
()
Ответ на: комментарий от loyd

Они и сделали

В смысле «сделали продвинутый интерфейс»? Отлично, но я хотел «[продвинутый интерфейс] в стандартной библиотеке». (:

Мне кажется, что выносить в сторонние библиотеки имеет смысл быстро развивающиеся вещи, а это не наш случай. Опять же, при наличии «в стандарте» трейтов (Rand, Rng и т.д.) будет подталкивать к общему интерфейсу и сторонние реализации.

DarkEld3r ★★★★★
()
Последнее исправление: DarkEld3r (всего исправлений: 1)
Ответ на: комментарий от DarkEld3r

Это да. Можно было бы делать #[derive(Rand)] вместо убогого #[derive_Rand]

loyd
()
Ответ на: комментарий от Virtuos86

По математике всегда было «5».

Похоже, зря.

если некоторые слова упускать, смысл прочитанного меняется

У тебя там сложное предложение, и «вроде» относится только к первой его части. О твоём математическом образовании вывод я сделал, основываясь на второй. Но, видимо, у тебя проблемы ещё и с русским.

anonymous
()
Ответ на: комментарий от loyd

кто мешает иметь простенький ГПСЧ аля pcg/xorshift с пометкой в документации о неприменимости для задач криптографии.

Такая пометка в документации есть для всех известных мне живых языков. Документацию никто не читает.

Да особо ничего не поменялось — теперь этому разработчику просто придётся прописать extern crate rand и добавить строчку в Cargo.toml. Или Вы думаете, что стоит вынести отдельно рандомайзер и — о чудо — быдлокодеры начнут читать маны?

Если нужно вот так скопировать две строки — ничего не изменится, конечно. У разных ГПСЧ должны быть разные интерфейсы, при этом применение «криптографического» должно давать ясно видимый latency penalty (что естественно), «воспроизводимого» — ясно видимое предупреждение на уровне трансляции или статического анализа. Некоторые статические анализаторы, включая Coverity, формируют такое предупреждение даже для кода на C. Ну и, разумеется, операция seed для «криптографического» ГПСЧ не имеет смысла, поэтому должна отсутствовать, а попытка её применения должна приводить к ошибке трансляции (компоновки).

anonymous
()
Ответ на: комментарий от DarkEld3r

В плюсах (теперь) нормально сделано на твой взгляд?

По крайней мере, лучше, чем было.

anonymous
()
Ответ на: комментарий от anonymous

Я бы послал тебя в жопу, но на сферического анонимного граммар-наци в вакууме бессмысленно тратить эмоции.

Virtuos86 ★★★★★
()
Ответ на: Итого от anonymous

Golang-хорошо, rust-УГ. Все.

Девчонки, не ругайтесь. Dlang рулит один хрен)) Там, прикинь, даже ГСПЧ есть в stdlib.

Dlang живет и движется несмотря на отсутствие корпорации за собой - это его единственный недостаток и в то же время доказательство его значимости. Без всякой моды и популизма.

anonymous
()
Ответ на: комментарий от Virtuos86

Я бы послал тебя в жопу

Кокой грозный!

бессмысленно тратить эмоции

А я-то было испугался.

сферического анонимного граммар-наци в вакууме

А ничего, что я за русский заговорил только тогда, когда ты кукарекнул, что я плохо читаю, и ты неправильно понят?

anonymous
()
Ответ на: комментарий от anonymous

Там, прикинь, даже ГСПЧ есть в stdlib

И школьники могут спокойно заполнять массивы, чтобы тестить свою сортировку пузырьком. Зашибись, чо.

Dlang рулит один хрен

Кроме ГПСЧ есть какие-то преимущества перед упомянутыми языками?

Dlang живет и движется

Куда движется? На свалку?

anonymous
()
Ответ на: Итого от anonymous

Мощной аргументации от фанатиков Go не видать. Или вы всегда делаете выводы, основываясь на личном фанатизме?

anonymous
()
Ответ на: комментарий от anonymous

И школьники могут спокойно заполнять массивы, чтобы тестить свою сортировку пузырьком. Зашибись, чо.

Не стоит оценивать уровень остальных по своему уровню.

Кроме ГПСЧ есть какие-то преимущества перед упомянутыми языками?

Конечно. Го нишевый язык, я бы его ни с Растом, ни с D не сравнивал бы вообще. Раст перспективен в своей упертости на безопасность, но это же и его минус - слишком многое приносится в жертву. Продуктивность? Нет, не слышали. В то время как D такой же продуктивный как Питон или шарп и при это нативно компилируемый.

Куда движется? На свалку?

В светлое будущее. СВЕТЛОЕ. Он еще и плюсы подталкивает собой. Многие фишки в плюсах появились благодаря D (и Rust'у тоже). Только плюсисты предпочитают этого не замечать.

anonymous
()
Ответ на: комментарий от Vudod

В нормальном коде каждая переменная локальна для своей процедуры.

Ну ты просто срыватель покровов! Как яйцеголовые то всех надурили своей заумью, понавыдумывали каких-то GC ненужных. Просто берешь и на стеке все делаешь, как 2 пальца обасфальт.

anonymous
()
Ответ на: комментарий от anonymous

Не стоит оценивать уровень остальных по своему уровню.

И для чего тебе на своём уровне стандартный генератор? Неужели перерос сортировку пузырьком и уже учишь какие-нибудь там дисциплины обслуживания?

Го нишевый язык, я бы его ни с Растом, ни с D не сравнивал бы вообще.

С Rust да, не стоит. А вот с Go можно спокойно сравнивать, оба компилируемые языки с GC. То, что у Go уже была ниша при создании, говорит о том, что он не повторит судьбу D, а не о том, что его нельзя использовать в других нишах. Опять же, тут Nim упоминали. Такое же сомнительное поделие, можно хоть обсравниваться.

СВЕТЛОЕ

А почему капсом? Сам себя убедить пытаешься?

Только плюсисты предпочитают этого не замечать.

А толку, если заметят? Думаешь, D за это медаль посмертно выдадут?

anonymous
()
Ответ на: комментарий от anonymous

Неужели перерос сортировку пузырьком

Конечно перерос. В отличие от тебя.

С Rust да, не стоит. А вот с Go можно спокойно сравнивать

В твоем ограниченном мирке, где все заканчивается на сортировке пузырьком, сравнивать можно все со всем. Это уже ясно.

А почему капсом? Сам себя убедить пытаешься?

Это называется - акцент. Т.е. выделить хочу эту мысль. Такой прием иногда используется, когда хочется обратить внимание человека на что-то. Но в твоем случае, похоже, бесполезно. Сортировка пузырьком - это предел твоего внимания.

А толку, если заметят?

D глубоко без разницы на это. На D люди пишут коммерческие проекты и зарабатывают деньги. Язык развивается без всякой моды и пиара.

anonymous
()
Ответ на: комментарий от anonymous

Конечно перерос

Ну, тогда пардон. Учись, студент.

Это уже ясно.

Твои аргументы закончились на сравнимости продуктивности несравнимых, по твоим же словам D и Rust. Это уже ясно.

Т.е. выделить хочу эту мысль

Капсом? Несчастное дитя интернета.

Но в твоем случае, похоже, бесполезно

Странно надеяться, что твои аффирмации про светлое будущее хоть кого-то заинтересуют.

D глубоко без разницы на это

Судя по твоему прошлому посту, тебе не без разницы. Я и спросил, почему.

anonymous
()
Ответ на: комментарий от anonymous

Кроме ГПСЧ есть какие-то преимущества перед упомянутыми языками?

Например у D лучше развито взаимодействие с кодом на C++, почитать можно на реддите. Там черным по белому пользователями Rust'а приведены примеры, что есть у D, и чего нет у Rust'а - думаю, нет причин им не доверять и сомневаться в их компетентности/предвзятости к Rust'у. И это, естественно, не исчерпывающий список.

Другое дело, что я не понимаю причины хейтерства. Не надо никого хоронить или восхвалять. Для всего есть свой инструмент. Где-то лучше будет Rust, а где-то лучше будет D. Нет в природе абсолюта.

yetanother ★★
()
Ответ на: комментарий от yetanother

Ну и в контексте D/C++ interop должен добавить, что в связи с переписыванием D frontend на самом D (сейчас готовится release candidate v2.069), разработчики значительно улучшили C++ interop и документация на сайте не успевает за этими улучшениями. D можно линковать с плюсовыми шаблонами, например. Ждем когда появится документация на эту тему.

yetanother ★★
()
Ответ на: комментарий от anonymous

Многие фишки в плюсах появились благодаря D

Как результат - иногда эти фишки выглядят лучше, чем в «оригинале». Например, «raw string literals».

Ну и в целом заимствовать идеи из других языков - это вполне нормально и правильно.

Относительно «плюсисты предпочитают этого не замечать» - какая-то обида у тебя чувствуется. Проще к этому надо относиться. Кто-то замечает, кто-то нет. Тем более, что работает оно в обе стороны - если бы не С++, то и D, в таком виде, вряд ли появился бы.

DarkEld3r ★★★★★
()
Ответ на: комментарий от DarkEld3r

Я согласен, что удачные заимствования --- это хорошо. Но проблема как раз в том, что многие писатели именно на плюсах утверждают, что у них всё всегда было и все остальные языки не нужны. И таких писателей полно и они имеют вес зачастую. Иногда очень тяжело оказывается отстаивать разумные идеи, когда эти товарищи понабегают.

Vudod ★★★★★
()
Ответ на: комментарий от DarkEld3r

Относительно «плюсисты предпочитают этого не замечать» - какая-то обида у тебя чувствуется.

Какая-то правда в этом есть, согласен. Но небольшая, больше правды в этом:

Но проблема как раз в том, что многие писатели именно на плюсах утверждают, что у них всё всегда было и все остальные языки не нужны. И таких писателей полно и они имеют вес зачастую. Иногда очень тяжело оказывается отстаивать разумные идеи, когда эти товарищи понабегают.

Ведь правда, она как обычно - посередине. И там хорошо, и там хорошо, нужно по ситуации смотреть.

Тем более, что работает оно в обе стороны - если бы не С++, то и D, в таком виде, вряд ли появился бы.

Абсолютно согласен.

yetanother ★★
()
Ответ на: комментарий от Vudod

Но проблема как раз в том, что многие писатели именно на плюсах утверждают, что у них всё всегда было и все остальные языки не нужны.

Дык, такие везде есть. Тем более, что зачастую всё ещё веселее чем «всё всегда было». А именно - пока какой-то фичи нет, то она объявляется не нужной, а когда в стандарт добавляют, то тут же оказывается очень полезной.

Инерция, консервативность и всё такое, надо это учитывать. Ну или просто не спорить (с такими), если это вызывает больше негативных эмоций.

DarkEld3r ★★★★★
()
Ответ на: комментарий от anonymous

В светлое будущее. СВЕТЛОЕ.

Такое-то самовнушение.

mix_mix ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.