LINUX.ORG.RU
ФорумTalks

Rust 1.6 вышел

 


1

2

Кому программирование близко, переформатируйте новость:

https://www.opennet.ru/opennews/art.shtml?num=56984

Опубликован релиз языка программирования общего назначения Rust 1.60, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).

Методы работы с памятью в Rust избавляют разработчика от ошибок при манипулировании указателями и защищают от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo. Для размещения библиотек поддерживается репозиторий crates.io.

Безопасная работа с памятью обеспечивается в Rust во время компиляции через проверку ссылок, отслеживание владения объектами, учёт времени жизни объектов (области видимости) и оценку корректности доступа к памяти во время выполнения кода. Rust также предоставляет средства для защиты от целочисленных переполнений, требует обязательной инициализации значений переменных перед использованием, лучше обрабатывает ошибки в стандартной библиотеке, применяет концепцию неизменяемости (immutable) ссылок и переменных по умолчанию, предлагает сильную статическую типизацию для минимизации логических ошибок.

Основные новшества:

* В компиляторе rustc стабилизирована основанная на LLVM система для генерации coverage-данных, используемых для оценки охвата кода при тестировании. Для включения coverage-данных при сборке необходимо использовать флаг "-Cinstrument-coverage", например, запуская сборку командой «RUSTFLAGS=»-C instrument-coverage" cargo build". После запуска собранного таким образом исполняемого файла в текущем каталоге будет сохранён файл default.profraw, для обработки которого можно использовать утилиту llvm-profdata из компонента llvm-tools-preview. Обработанный утилитой llvm-profdata вывод затем можно передать программе llvm-cov для генерации аннотированного отчёта со сведениями об охвате кода. Информация о привязке к исходным текстам берётся из исследуемого исполняемого файла, в который включаются необходимые данные о связи coverage-счётчиков с кодом.

    1|      1|fn main() {
    2|      1|    println!("Hello, world!");
    3|      1|}

* В пакетном менеджере cargo стабилизирована поддержка флага "--timings", включающего формирование детального отчёта о ходе сборки и времени выполнения каждого шага. Отчёт может оказаться полезен для оптимизации производительности сборочного процесса.

* В пакетном менеджере cargo предложен новый синтаксис для механизма условной компиляции и выбора необязательных зависимостей, настраиваемого в файле Cargo.toml через перечисление списка именованных свойств в секции [features] и активируемого через включение свойств во время сборки пакета при помощи флага "--features". В новой версии добавлена поддержка зависимостей в отдельных пространствах имён и слабых (weak) зависимостей.

В первом случае реализована возможность использования внутри секции "[features]" элементов с префиксом «dep:» для явной привязки к необязательной зависимости без неявного представления этой зависимости как свойства (feature).

Во втором случае добавлена поддержка пометки знаком "?" («package-name?/feature-name») необязательных зависимостей, которые следует включить только, если какое-то другое свойство включает данную необязательную зависимость. Например, в примере ниже включение свойства serde приведёт к включению зависимости «serde», а также свойства «serde» для зависимости «rgb», но только если где-то ещё включена зависимость «rgb»:

   [dependencies]
   serde = { version = "1.0.133", optional = true }
   rgb = { version = "0.8.25", optional = true }
   
   [features]
   serde = ["dep:serde", "rgb?/serde"]

* Возвращена отключённая в прошлом выпуске поддержка инкрементальной компиляции. Ошибка в компиляторе, из-за которой функция была отключена, устранена.

* Решены некоторые проблемы с предоставлением для таймеров Instant гарантии монотонного расчёта времени, при котором учитывается время проведённое системой в спящем режиме. Ранее для работы таймера по возможности использовался OS API, который не учитывал проблемные ситуации, нарушающие монотонность времени, такие как проблемы с оборудованием, применение виртуализации или ошибки в операционной системе.

* В разряд стабильных переведена новая порция API, в том числе стабилизированы методы и реализации типажей:

Arc::new_cyclic
Rc::new_cyclic
slice::EscapeAscii
<[u8]>::escape_ascii
u8::escape_ascii
Vec::spare_capacity_mut
MaybeUninit::assume_init_drop
MaybeUninit::assume_init_read
i8::abs_diff
i16::abs_diff
i32::abs_diff
i64::abs_diff
i128::abs_diff
isize::abs_diff
u8::abs_diff
u16::abs_diff
u32::abs_diff
u64::abs_diff
u128::abs_diff
usize::abs_diff
Display для io::ErrorKind
From для ExitCode
Not для ! (тип "never")
_Op_Assign<$t>
arch::is_aarch64_feature_detected!

* Реализован третий уровень поддержки для платформ mips64-openwrt-linux-musl* и armv7-unknown-linux-uclibceabi (softfloat). Третий уровень подразумевает базовую поддержку, но без автоматизированного тестирования, публикации официальных сборок и проверки возможности сборки кода. Компилятор переведён на использование LLVM 14. Дополнительно можно отметить:

* Добавлена поддержка раскрутки компилятора (bootstrapping) rustc при помощи бэкенда rustc_codegen_gcc, позволяющего использовать библиотеку libgccjit от проекта GCC в качестве генератора кода в rustc, что позволяет обеспечить в rustc поддержку доступных в GCC архитектур и оптимизаций. Под раскруткой компилятора понимается возможность использования в rustc генератора кода на основе GCC для сборки самого компилятора rustc. С практической стороны подобная возможность позволяет собирать rust-программы для архитектур, ранее не поддерживаемых в rustc.

* Доступен выпуск инструментария uutils coreutils 0.0.13, в рамках которого развивается аналог пакета GNU Coreutils, переписанный на языке Rust. В состав coreutils входит более ста утилит, включая sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln и ls. Целью проекта является создание кросс-платформенной альтернативной реализации Coreutils, способной работать в том числе на платформах Windows, Redox и Fuchsia, а также распространение под пермиссивной лицензией MIT, вместо копилефт-лицензии GPL.

В новой версии улучшены реализации многих утилит, в том числе значительно улучшена совместимость утилит cp, dd, df, split и tr с аналогами от проекта GNU. Предоставлена online-документация. Для разбора аргументов командной строки задействован парсер clap, что позволило улучшить вывод для флага "--help" и добавить поддержку аббревиатур длинных команд (например, можно указывать «ls --col» вместо «ls --color»).

★★★★★

Последнее исправление: crypt (всего исправлений: 9)

Природа настолько очистилась, что новости о расте пишет жопыч в толксах? Мамкиных растофанов в тероборону забрили небось.

bread
()

говорим дРуст подразумеваем мелкософт, который, как обычно, тащит и вендорлочит все на себя и на свои кривульки «без ооп», «без solid’а» и другими фатальными проблемами и либеральным тоталитаризмом, чтобы вонючие сектанты из их опг могли паразитировать и устраивать конвееры виноватых

Syncro ★★★★★
()
Последнее исправление: Syncro (всего исправлений: 3)

byko3y, а что rust уже не самая последняя новинка? я смотрю, уже есть rust inspired languages:

Zig is an imperative, general-purpose, statically typed, compiled system programming language designed by Andrew Kelley. The language is designed for «robustness, optimality and maintainability», supporting compile-time generics and reflection, cross-compilation and manual memory management. A major goal of the language is to improve upon the C language, while also taking inspiration from Rust, among others. Zig has many features for low-level programming, notably: packed structs (structs without padding between fields), arbitrary width integers and multiple pointer types.

и его даже уже хвалят https://www.opennet.ru/openforum/vsluhforumID3/127209.html#53

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

мне вообще rust, как идея быстрого и безопасного языка очень нравится, особенно каждый раз, когда я вижу seg fault в системных утилитах FreeBSD.

crypt ★★★★★
() автор топика

и вообще уже пятница... где все-то? не проснулись или токсы опустели.

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

сектанты не пиарят то, что не считают своим, даже скорее игнорируют или борятся с ним, а уж если телеграм то НОТОЛЬКО ВСЕ БЫСТРА ЛЯ НА ТЕЛЕГРАМ

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

сектанты также не приемлют ничего нормального, только дефективное, чтобы страдания шипче умножались

Syncro ★★★★★
()

Рекламный буклет прочитал какой-то.

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

Сказал как ртом.

Давай мы с тобой вместе дождёмся, когда тебя отпустит, и ты сформулируешь предложение нормально, а то читать этот поток сознания совершенно невозможно.

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

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

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

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

Syncro ★★★★★
()

Так блэт, а кто тег «новости от жопыча» почистил? Там было 20+ тем раньше. Неужто макском его как мусорный убрал?

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

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

А тебя уже начало отпускать, как я вижу.

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

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

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

сишорп продвигался с тем же апломбом, что цэ(пп) плохой. И как ? Стало ли всем с этого гамна лучше ?

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

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

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

«Осторожно злая сосиска!»

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

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

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

названия зиг и карго должны как бы намекать на ноги растущие из либерал-фошизма где кардинал - бил людоед

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

там нет пакетного менеджера

в языке программированиЯ?? так и славно!

и гарантий безопасности

почему? вроде же защита памяти есть.

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

в языке программированиЯ?? так и славно!

в 2022 не взлетит без него

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

посмотрим что с Zig будет

Угораю с этого названия. Лютейшая провокация бомбёжки со всех возможных сторон.

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

сектанты

сектанты

сектанты

сектанты

Знаешь, если все вокруг тебя сектанты, возникает вопрос, а не в секте ли ты сам?

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

рекламируют только то в чем есть элемент прельщения и соответственно гарантия последующей кары, а си это честный труд, сколько утечек и ошибок сегментирования наделал - все твои

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

сизифов будет у друстохомяков когда мелкософт прокинет их как они любят

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

Ты за последнее время вывалил 5-7 тем только с мусорным тэгом «новости от жопыча» и больше ничего. Я несколько раз добавлял нормальный и удалял твой мусорный. Потом удалил его совсем.

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

друг димез, а как еще я должен помечать мусорные сообщения?? ты сам вообще приносишь какие-то немусорные сообщения? это куда полезнее стерильности.

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

да, типа в токсах это нормально. или ты хочешь вообще все здесь остановить и превратить это в «чисто технический ресурс»? так вот чисто по статистике видно, что в токсах пишут больше и чаще, чем во все остальные чисто технические темы. так что нифига это не чисто технический ресурс. и тег «новости от жопыча» прекрасно это отражает.

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

Ты за последнее время вывалил 5-7 тем только с мусорным тэгом «новости от жопыча» и больше ничего.

и скажем спасибо, что кто-то это еще делает. а что _еще_ ты ожидал, прости меня?

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

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

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