The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

06.01.2018 08:17  Релиз языка программирования Rust 1.23

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

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

В подготовке нового выпуска приняли участие 158 разработчиков. Основные новшества:

  • В компиляторе проведена работа по исключению излишних операций копирования, что привело к сокращению потребления памяти при использовании rustc на 5-10%;
  • Документация rustdoc переведена на использование разметки CommonMark (спецификация для формата Markdown). Теперь для генерации документации может использоваться не только Hoedown, но и любой совместимый с CommonMark инструментарий. Документация для Cargo, ранее размещённая на сайте doc.crates.io, перемещена в раздел doc.rust-lang.org/cargo.
  • Стандартизирована функциональность типажа (traits) AsciiExt, предоставляющего функции для определения типа символов (u8, char, [u8], str). В новом выпуске предоставляемые типажом методы определены непосредственно для связанных с ними типов и не требуют явного импорта типажа (use std::ascii::AsciiExt). Например:
    
     
      let ascii = 'a';
      let non_ascii = '❤';
      let int_ascii = 97;
    
      assert!(ascii.is_ascii());
      assert!(!non_ascii.is_ascii());
      assert!(int_ascii.is_ascii());
    
  • В объектах trait теперь разрешено использование произвольных типажей auto;
  • В разряд стабильных переведена новая порция API, в том числе для типов std::sync::atomic реализован метод From для преобразования из неатомарных типов, например "let x = AtomicBool::from(true)". Добавлена поддержка конструкций FromIterator‹()›. Cняты ограничения T: Sync для RwLock‹T›: Send;
  • Проведена оптимизация Thread::{park, unpark} и SliceExt::binary_search;
  • В компиляторе для LLVM включен режим TrapUnreachable для уменьшения ситуаций, приводящих к неопределённому поведению программ;
  • В пакетном менеджере Cargo добавлена возможность выполнения команды "cargo uninstall" для удаления за раз более чем одного пакета. В "cargo check" добавлена поддержка проверки unit-тестов.


  1. Главная ссылка к новости (https://blog.rust-lang.org/201...)
  2. OpenNews: Релиз языка программирования Rust 1.22
  3. OpenNews: Релиз языка программирования Rust 1.21
  4. OpenNews: Релиз языка программирования Rust 1.20
  5. OpenNews: Третий выпуск операционной системы Redox OS, написанной на языке Rust
  6. OpenNews: В Firefox добавлен CSS-движок Stylo, написанный на языке Rust
Лицензия: CC-BY
Тип: Программы
Ключевые слова: rust
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.6, VINRARUS, 15:12, 06/01/2018 [ответить] [смотреть все]
  • –14 +/
    После апаратных уязвимостей х86 я так понимаю утверждение с цытаты устарело ... весь текст скрыт [показать]
     
     
  • 2.7, Wladmis, 15:28, 06/01/2018 [^] [ответить] [смотреть все] [показать ветку]  
  • +10 +/
    > >Язык сфокусирован на безопасной работе с памятью
    > После апаратных уязвимостей х86 я так понимаю утверждение с цытаты устарело? =]

    Нет, это вообще про разное.

     
  • 2.8, Akteon, 17:07, 06/01/2018 [^] [ответить] [смотреть все] [показать ветку]  
  • +3 +/
    Почему устарело-то ?? Будто программа на Rust принципиально не может выполнятся на процессоре без предсказания ветвлений , бггг
     
  • 1.17, S.Atahl, 08:42, 07/01/2018 [ответить] [смотреть все]  
  • –2 +/
    Чего только не придумают, лишь бы не писать на си-86.
     
     
  • 2.18, foi, 11:56, 07/01/2018 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Чего только не придумают, лишь бы быть ретроградом
     
  • 2.20, Аноним, 15:29, 07/01/2018 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    Чего только не придумают чтобы не писать на Ассемблере Чего только не прид... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.21, pda, 00:54, 08/01/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Я, кстати, писал чуть-чуть. For fun. В пределах 100 байт. Удовольствие, как и следовало ожидать оказалось так себе. :)
     
  • 1.19, anomymous, 12:26, 07/01/2018 [ответить] [смотреть все]  
  • –1 +/
    >> По структуре язык Rust напоминает C++
    >> let ascii = 'a';
    >> assert!(!non_ascii.is_ascii());

    /0

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor