The OpenNET Project / Index page

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

30.03.2018 21:28  Релиз языка программирования Rust 1.25

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

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

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

  • Компилятор переведён с кодовой базы LLVM 4 на LLVM 6. В компилятор также добавлена опция "-C lto=val" для выбора типа LTO-оптимизации и целевая платформа "i586-unknown-linux-musl";
  • Предложен новый способ использования выражения "use" для оформления вложенных групп импортирования:
    
       use std::{fs::File, io::Read, path::{Path, PathBuf}};
    вместо
       use std::fs::File;
       use std::io::Read;
       use std::path::{Path, PathBuf};
    
  • Добавлена возможность использования символа "|" для отделения сопоставлений в блоке match:
    
       enum Foo { A, B, C }
       fn main() {
           let x = Foo::A;
           match x {
               | Foo::A
               | Foo::B => println!("AB"),
               | Foo::C => println!("C"),
           }
       }
    
  • Принят и стабилизирован RFC 1358, определяющий атрибут "#[repr(align(x))]", при помощи которого можно указать способ выравнивания данных для структур;
  • В разряд стабильных переведена новая порция API, в том числе std::ptr::NonNull‹T› и Location::column;
  • В libcore добавлен модуль time, содержащий тип Duration, который раньше присутствовал только в libstd. Функции from_secs и from_millis теперь определены как "const", т.е. могут использоваться для создания констант:
    
       static MINUTE: Duration = Duration::from_secs(60);
    
  • Объявлен устаревшим метод net::lookup_host;
  • Документация по умолчанию переведена на использование разметки CommonMark (спецификация для формата Markdown) вместо Hoedown;
  • На сайте doc.rust-lang.org предложено новое руководство "Rust By Example";
  • В пакетном менеджере Cargo команда "cargo new" теперь по умолчанию создаёт исполняемые бинарные файлы (флаг "--bin"), а не библиотеки (для библиотеки теперь нужно явно указывать флаг "--lib"). Команда "cargo new" также теперь не удаляет префикс "rust-" и суффикс "-rs" из имени пакета;
  • Существенно ускорена работа "cargo doc" и операции получения кода зависимостей из Git.


  1. Главная ссылка к новости (https://blog.rust-lang.org/201...)
  2. OpenNews: Для Linux и Redox представлена реализация Libc на языке Rust
  3. OpenNews: Релиз языка программирования Rust 1.24
  4. OpenNews: Третий выпуск операционной системы Redox OS, написанной на языке Rust
  5. OpenNews: В Firefox добавлен CSS-движок Stylo, написанный на языке Rust
  6. OpenNews: Эксперимент по разработке частей ядра Linux на языке Rust
Лицензия: CC-BY
Тип: Программы
Ключевые слова: rust, lang
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, Аноним, 22:45, 30/03/2018 [ответить] [смотреть все]
  • +6 +/
    Как насчёт использования APL символов? Обычные то закончатся скоро, а слова писать, по всей видимости, не Ъ.
     
     
  • 2.2, Аноним, 23:14, 30/03/2018 [^] [ответить] [смотреть все] [показать ветку]
  • –2 +/
    До скалы с операторами вида <>|<> еще далеко.
     
     
  • 3.3, Crazy Alex, 23:26, 30/03/2018 [^] [ответить] [смотреть все]
  • +1 +/
    Вот как раз подумалось, что очень похоже становится И запросто может сфейлиться... весь текст скрыт [показать]
     
     
  • 4.36, авыф, 07:11, 01/04/2018 [^] [ответить] [смотреть все]  
  • –2 +/
    да, скала это, конечно, это вещь в себе Разработчики такие А че это у н... весь текст скрыт [показать]
     
  • 3.4, Аноним, 00:24, 31/03/2018 [^] [ответить] [смотреть все]  
  • –3 +/
    Ууу, ыкспердс опеннета, неосиливший Scala. В Scala нет операторов.
     
     
  • 4.6, angra, 00:40, 31/03/2018 [^] [ответить] [смотреть все]  
  • +4 +/
    https docs scala-lang org tour operators html То, что операторы используют мех... весь текст скрыт [показать]
     
     
  • 5.7, Аноним, 00:49, 31/03/2018 [^] [ответить] [смотреть все]  
  • –3 +/
    Ещё раз По слогам - В СКАЛА НЕТ ОПЕРАТОРОВ, есть только методы классов объектов... весь текст скрыт [показать]
     
     
  • 6.10, Буратино, 01:20, 31/03/2018 [^] [ответить] [смотреть все]  
  • +4 +/
    Лолчто?

    В C++ спокойно пишется что obj1 += obj2, что obj1.operator+=(obj2).

     
  • 6.11, angra, 01:44, 31/03/2018 [^] [ответить] [смотреть все]  
  • +10 +/
    > В СКАЛА НЕТ ОПЕРАТОРОВ

    Если написать большими буквами, то убедительней не будет, особенно в свете того, что официальная дока говорит об обратном.

    > Инфиксная форма вызова метода с одним параметром - синтаксический сахар компилятора.

    Ага, а их приоритет чем является?

    > В случае настоящего оператора, как в джаве или с++ такое просто не возможно, ибо там это именно операторы.

    Ты похоже даже близко не представляешь, что в С++ возможно с операторами. Причем это там было, когда не только scala, но и java в проекте не существовало.

     
  • 6.13, Аноним, 06:49, 31/03/2018 [^] [ответить] [смотреть все]  
  • +/
    Если оператор можно записать как-то по другому, он не перестает быть операторо... весь текст скрыт [показать]
     
  • 6.23, Илья, 14:06, 31/03/2018 [^] [ответить] [смотреть все]  
  • +/
    извините, но скала работает на jwm Обратите внимание на то, что операторы практ... весь текст скрыт [показать]
     
  • 2.5, мурзилла, 00:31, 31/03/2018 [^] [ответить] [смотреть все] [показать ветку]  
  • +11 +/
    ну что вы, apl - детище древних serial терминалов, у которых только половина ascii и то неполная.

    У нас в XXI веке - полный unicode тех символов. Правда, пока голоса разделились поровну- никак не определим, смайлик-какaшка это унарный или бинарный оператор?

     
     
  • 3.9, funny.falcon, 01:12, 31/03/2018 [^] [ответить] [смотреть все]  
  • +11 +/
    Думаю, как с минусом: если у себя наложил, то унарный; если же соседу по дверь, то бинарный.
     
  • 1.14, Аноним, 07:49, 31/03/2018 [ответить] [смотреть все]  
  • –6 +/
    Можно узнать про связь языка Раст с LLVM Зачем Расту LLVM Без LLVM компилятор ... весь текст скрыт [показать]
     
     
  • 2.15, сишечка с пюрешечкой, 09:01, 31/03/2018 [^] [ответить] [смотреть все] [показать ветку]  
  • –2 +/
    если совсем просто, то писать компилятор очень тяжело llvm - одна из лучших вещ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.16, Аноним, 10:18, 31/03/2018 [^] [ответить] [смотреть все]  
  • –1 +/
    Насколько я понял очень трудно создавать свой бекенд, который и превращает исход... весь текст скрыт [показать]
     
     
  • 4.19, leap42, 12:28, 31/03/2018 [^] [ответить] [смотреть все]  
  • +3 +/
    Он так не может это норма, его же проприерасты из Apple придумали, но исходники ... весь текст скрыт [показать]
     
     
  • 5.27, Аноним, 17:45, 31/03/2018 [^] [ответить] [смотреть все]  
  • –3 +/
    Ага, и ассемблер никуда не денется Причём тут это В новости явно сказано, что ... весь текст скрыт [показать]
     
     
  • 6.32, Аноним, 21:04, 31/03/2018 [^] [ответить] [смотреть все]  
  • –1 +/
    Rust версию llvm с собой таскает Обожаю когда свободофобы придумывают очередную... весь текст скрыт [показать]
     
     
  • 7.41, Alan Walk, 13:40, 01/04/2018 [^] [ответить] [смотреть все]  
  • –2 +/
    LLVM это компилятор, с возможностью запуска кода в виртуальной машине Раст пос... весь текст скрыт [показать]
     
     
  • 8.44, Led, 21:00, 01/04/2018 [^] [ответить] [смотреть все]  
  • +1 +/
    Ты специально сегодня зарегался только для того, чтобы показать какой ты недалёк... весь текст скрыт [показать]
     
  • 4.25, Аноним, 15:08, 31/03/2018 [^] [ответить] [смотреть все]  
  • –2 +/
    Альтернатив нет GCC не был написан по подобному модульному принципу Если тольк... весь текст скрыт [показать]
     
  • 3.28, yet another, 18:51, 31/03/2018 [^] [ответить] [смотреть все]  
  • –3 +/
    Положим, там не 20M, а несколько кусков с размерами около 1G.
     
  • 2.21, Аноним, 13:07, 31/03/2018 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Ты бы почитал про LLVM что-нибудь, кроме расшифровки названия Это не только в... весь текст скрыт [показать] [показать ветку]
     
  • 1.17, anomymous, 11:53, 31/03/2018 [ответить] [смотреть все]  
  • +/
    > По структуре язык Rust напоминает C++

    Нет.

     
     
  • 2.24, Илья, 14:08, 31/03/2018 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    ну чуточку Вообще, эта фраза мигрирует из новости в новость ... весь текст скрыт [показать] [показать ветку]
     
  • 1.18, Аноним, 12:26, 31/03/2018 [ответить] [смотреть все]  
  • –1 +/
    Мне одному кажется, что Rust становится новым перлом Если что-то легко реализов... весь текст скрыт [показать]
     
     
  • 2.22, Аноним, 13:08, 31/03/2018 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    В данном случае такое расширение вполне логично.
     
  • 2.26, Аноним, 15:11, 31/03/2018 [^] [ответить] [смотреть все] [показать ветку]  
  • –2 +/
    Здесь люди получают удовольствие от реализации всё новых и новых сложных фич в я... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.30, Аноним, 20:36, 31/03/2018 [^] [ответить] [смотреть все]  
  • –5 +/
    Никому не нужное дерьмо тащат, а ООП так и не завезли Без ООП не нужен Нам одн... весь текст скрыт [показать]
     
     
  • 4.34, Nexmean, 06:16, 01/04/2018 [^] [ответить] [смотреть все]  
  • +/
    Не нужен ООП в расте, никогда его там не будет В расте куда более мощная и гибк... весь текст скрыт [показать]
     
     
  • 5.35, авыф, 06:53, 01/04/2018 [^] [ответить] [смотреть все]  
  • +/
    Расскажите подробнее, интересно посушать Вообще, по мне так в ООП нет ничего п... весь текст скрыт [показать]
     
     
  • 6.38, Аноним, 07:23, 01/04/2018 [^] [ответить] [смотреть все]  
  • –2 +/
    Поподробнее не могу, скажу просто, ООП нужно тем, кто неможет, или не умеет в ал... весь текст скрыт [показать]
     
     
  • 7.39, афаф, 11:35, 01/04/2018 [^] [ответить] [смотреть все]  
  • –1 +/
    Извините, не вижу никакого противоречия Вы его сами придумали Раст вроде не тол... весь текст скрыт [показать]
     
     
  • 8.40, Аноним, 12:53, 01/04/2018 [^] [ответить] [смотреть все]  
  • +/
    Хорошо, попытаюсь в лоб Людям, которые ничего кроме ООП и готовеньких шаблонов ... весь текст скрыт [показать]
     
     
  • 9.42, Афаф, 16:01, 01/04/2018 [^] [ответить] [смотреть все]  
  • –2 +/
    Я бы сказал общепринятых шаблонов Наличие паттернов оо проектирования это скоре... весь текст скрыт [показать]
     
     
  • 10.43, Led, 20:58, 01/04/2018 [^] [ответить] [смотреть все]  
  • +/
    У тебя не пройдёт ... весь текст скрыт [показать]
     
  • 10.48, Солнышко, 17:21, 02/04/2018 [^] [ответить] [смотреть все]  
  • –1 +/
    Да если б хотя бы ООП знали ... весь текст скрыт [показать]
     
  • 4.37, Аноним, 07:16, 01/04/2018 [^] [ответить] [смотреть все]  
  • +/
    Боже упаси Не нужно никакого ООП Для языка, который позиционируется системным ... весь текст скрыт [показать]
     
  • 1.31, Аноним, 20:58, 31/03/2018 [ответить] [смотреть все]  
  • +1 +/
    Qt порт бы целиком под Rust...
     

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


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