Rust 1.37 ការចេញផ្សាយភាសាសរសេរកម្មវិធី

បោះពុម្ពផ្សាយ ការចេញផ្សាយភាសាកម្មវិធីប្រព័ន្ធ ច្រែះ ១បង្កើតឡើងដោយគម្រោង Mozilla ។ ភាសាផ្តោតលើសុវត្ថិភាពនៃការចងចាំ ផ្តល់នូវការគ្រប់គ្រងអង្គចងចាំដោយស្វ័យប្រវត្តិ និងផ្តល់មធ្យោបាយដើម្បីសម្រេចបាននូវភាពស្របគ្នានៃកិច្ចការខ្ពស់ដោយមិនប្រើឧបករណ៍ប្រមូលសំរាម ឬពេលដំណើរការ។

ការគ្រប់គ្រងអង្គចងចាំដោយស្វ័យប្រវត្តិរបស់ Rust ដោះលែងអ្នកអភិវឌ្ឍន៍ពីឧបាយកលចង្អុល និងការពារប្រឆាំងនឹងបញ្ហាដែលកើតឡើងពីការរៀបចំអង្គចងចាំកម្រិតទាប ដូចជាការចូលប្រើអង្គចងចាំក្រោយទំនេរ ការបដិសេធទ្រនិចទទេ ការដំណើរការលើសចំណុះ និងអ្វីៗផ្សេងទៀត។ កម្មវិធីគ្រប់គ្រងកញ្ចប់កំពុងត្រូវបានបង្កើតឡើងដើម្បីចែកចាយបណ្ណាល័យ ធានាការប្រមូលផ្តុំ និងគ្រប់គ្រងភាពអាស្រ័យដោយគម្រោង។ ទឹកអាកាសអនុញ្ញាតឱ្យអ្នកទទួលបានបណ្ណាល័យដែលត្រូវការសម្រាប់កម្មវិធីដោយចុចតែម្តង។ ឃ្លាំងមួយត្រូវបានគាំទ្រសម្រាប់បង្ហោះបណ្ណាល័យ crates.io.

សំខាន់ ការច្នៃប្រឌិត:

  • В компиляторе rustc បានផ្តល់ поддержка оптимизации на основе результатов профилирования кода (PGO, Profile-Guided Optimization),
    позволяющих генерировать более оптимальный код на основе анализа статистики, накопленной в процессе выполнения программы. Для генерации профиля предусмотрен флаг «-C profile-generate», а для использования профиля при сборке — «-C profile-use» (вначале программа собирается с первым флагом, обкатывается и после создания профиля собирается повторно со вторым флагом);

  • При выполнении команды «cargo run», которую удобно использовать для быстрого тестирования консольных приложений, добавлена возможность автоматического выбора исполняемого файла для запуска, в случае если в пакете присутствует несколько исполняемых файлов. Выполняемый по умолчанию файл определяется через директиву default-run в секции [package] с параметрами пакета, которая позволяет обойтись без явного указания имени файла через флаг «—bin» при каждом запуске «cargo run»;
  • В пакетный менеджер Cargo интегрирована команда «cargo vendor», ранее поставляемая в виде отдельного пакета. Команда позволяет организовать работу с локальной копией зависимостей — после выполнения «cargo vendor» все исходные тексты зависимостей проекта загружаются с crates.io в локальный каталог, который затем можно использовать для работы без обращения к crates.io (после выполнения команды показывается подсказка по изменению конфигурации для использования каталога при сборках). Указанная возможность уже применяется для организации поставки компилятора rustc с упаковкой всех зависимостей в один архив с релизом;
  • Появилась возможность создания ссылок на варианты перечислений (enum), используя псевдонимы типа (например, в теле функции «fn increment_or_zero(x: ByteOption) можно указывать «ByteOption::None => 0»), конструкции вычисления типов (‹MyType‹..››::вариант => N) или обращения Self (в блоках c &self можно указать «Self::Quarter => 25»);
  • Добавлена возможность создания неименованных констант в макросах. Вместо определения имени элемента в «const» теперь можно использовать символ «_» для динамического выбора неповторяющегося идентификатора, позволяющего избежать конфликта имён при повторном вызове макроса;
  • Добавлена возможность использования атрибута «#[repr(align(N))» с перечислениями (enums), используя синтаксис, аналогичный определению структуры AlignN‹T› с выравниванием и последующему использованию AlignN‹MyEnum›;
  • В разряд стабильных переведена новая порция API, в том числе стабилизированы методы BufReader::buffer, BufWriter::buffer,
    Cell::from_mut,
    Cell::as_slice_of_cells,
    DoubleEndedIterator::nth_back,
    Option::xor,
    {i,u}{8,16,64,128,size}::reverse_bits, Wrapping::reverse_bits и
    slice::copy_within.

លើសពីនេះទៀតវាអាចត្រូវបានកត់សម្គាល់ ការចាប់ផ្តើមនៃការធ្វើតេស្ត គម្រោង Async-std, предлагающего асинхронный вариант стандартной библиотеки Rust (порт библиотеки std, в котором все интерфейсы предложены в версии с async и готовы для использования с синтаксисом async/await).

ប្រភព: opennet.ru

បន្ថែមមតិយោបល់