LINUX.ORG.RU

Сообщения dotcoder

 

Немного новостей из мира Rust

Форум — Development

Последние новости из мира Rust вкратце:

  1. Вышла новая стабильная версия Rust 1.74.0.
  2. Сформирована новая команда по работе над официальной спецификацией языка Rust и представлено их видение.
  3. Ferrocene (набор инструментов компилятора Rust для критически важных сред и систем безопасности) прошёл сертификацию и теперь официально соответствует требованиям ISO 26262 и IEC 61508 и полностью пригоден для использования в средах, критически важных для безопасности.
  4. Доступно видео с конференции EuroRust 2023.
  5. Microsoft вкладывает 10 миллионов долларов, чтобы сделать Rust языком 1-го класса в своих инженерных системах.

Перемещено maxcom из talks

 

dotcoder
()

JetBrains присоединяется к Фонду Rust и выпускает новую среду разработки под Rust — RustRover

Форум — Talks

 ,

dotcoder
()

Ушёл из жизни автор Vim — Брэм Муленаар

Форум — Talks

3 августа ушёл из жизни автор Vim Брэм Муленаар.

https://groups.google.com/g/vim_announce/c/tWahca9zkt4?pli=1

 bram moolenaar, ,

dotcoder
()

Google представила новую операционную систему

Форум — Talks

Там это, Google новую операционку анонсировала. Называется KataOS.

Пишут, что для встраиваемых систем, периферийных устройств (типа сетевых камер) и интернета вещей. Цель – написать надёжно-защищённую систему, поэтому «Катя» практически полностью написана на Rust.

В качестве ядра используется микроядро seL4 (и, внимание: seL4’s implementation is formally (mathematically) proven correct (bug-free) against its specification. It was the world’s first operating system with such a proof, and is still the only proven operating system featuring fine-grained capability-based security and high performance).

Подробнее: https://opensource.googleblog.com/2022/10/announcing-kataos-and-sparrow.html

 , kataos,

dotcoder
()

Pingora — альтернатива Nginx от Cloudflare

Форум — Talks

Компания Cloudflare в своём блоге рассказала о новом HTTP-прокси Pingora, написанном на Rust.

На данный момент Pingorа полностью задействована в продакшне и уже показала более высокую производительность и эффективность по сравнению со старым решением: Pingora обслуживает более 1 трлн. запросов в день, потребляя при этом только треть вычислительных ресурсов и ОЗУ по сравнению с предыдущей инфраструктурой (Pingora потребляет примерно на 70% меньше процессорного времени и на 67% меньше памяти по сравнению со старым сервисом с той же нагрузкой по трафику).

Причиной написания своего прокси послужили ограничения и возможности Nginx, в которые они упёрлись, и было целесообразнее написать своё решение: «мы переросли Nginx» - как они сами пишут в корпоративном блоге.

В будущем Cloudflare планируют открыть исходный код Pingora.

https://blog.cloudflare.com/how-we-built-pingora-the-proxy-that-connects-cloudflare-to-the-internet/

 , pingora,

dotcoder
()

grex 1.4.0 — генератор регулярных выражений

Новости — Разработка
grex 1.4.0 — генератор регулярных выражений
Группа Разработка

Обновилась утилита для создания регулярных выражений — grex 1.4.0. В новой версии исправлены ошибки, обновлена поддержка Unicode 14, крупным изменением стала возможность компиляции в WebAssembly и теперь grex можно использовать в браузере и Node.js (автор собрал NPM-пакет).

Посмотреть работу grex без установки можно на демо-странице: https://pemistahl.github.io/grex-js/

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

 , ,

dotcoder
()

Carbon — преемник C++ от Google

Форум — Talks

На конференции Cpp North был представлен экспериментальный язык программирования Carbon – преемник С++ (по заявлению разработчиков). Видео презентации: https://www.youtube.com/watch?v=omrY53kbVoA

Разработчики обещают производительность, соответствующую C++, взаимодействие с существующим кодом C++, от наследования до шаблонов, быстрые и масштабируемые сборки, совместимые с существующими системами сборки C++, двунаправленную интероперабельность с C++ и многое другое.

Пример кода на Carbon:

( читать дальше... )

тот же код на С++:

( читать дальше... )

Доп. информация: https://9to5google.com/2022/07/19/carbon-programming-language-google-cpp/

 , carbon

dotcoder
()

Rust 1.59.0

Форум — Talks

Вышла новая версия языка программирования Rust, Rust 1.59.0. В этой версии стабилизированы следующие возможности:

Встроенный ассемблер

Теперь можно внедрять инструкции языка ассемблера непосредственно в исходный код и писать низкоуровневый код с доступом к специализированным машинным инструкциям:

use std::arch::asm;

// Multiply x by 6 using shifts and adds
let mut x: u64 = 4;
unsafe {
    asm!(
        "mov {tmp}, {x}",
        "shl {tmp}, 1",
        "shl {x}, 2",
        "add {x}, {tmp}",
        x = inout(reg) x,
        tmp = out(reg) _,
    );
}
assert_eq!(x, 4 * 6);

Встроенный ассемблер стабилизирован для следующих архитектур: x86 и x86-64, ARM, AArch64, RISC-V.

Деструктурирующие присваивания

Теперь можно использовать кортежи, срезы и шаблоны структур в левой части присваивания:

let (a, b, c, d, e);

(a, b) = (1, 2);
[c, .., d, _] = [1, 2, 3, 4, 5];
Struct { e, .. } = Struct { e: 5, f: 3 };

assert_eq!([1, 2, 1, 4, 5], [a, b, c, d, e]);

Примечание: деструктурирующие присваивания с такими операторами как += запрещены.

Значения по умолчанию для константных дженериков и чередование типов параметра

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

struct ArrayStorage<T, const N: usize = 2> {
    arr: [T; N],
}

impl<T> ArrayStorage<T> {
    fn new(a: T, b: T) -> ArrayStorage<T> {
        ArrayStorage {
            arr: [a, b],
        }
    }
}

Раньше параметры типа должны были стоять перед всеми константными параметрами. Это ограничение было ослаблено и теперь их можно чередовать:

fn cartesian_product<
    T, const N: usize,
    U, const M: usize,
    V, F
>(a: [T; N], b: [U; M], f: F) -> [[V; N]; M]
where
    F: FnMut(&T, &U) -> V
{
    // ...
}

Предупреждения о несовместимости в будущем

Теперь Cargo будет показывать предупреждение, если та или иная зависимость будет отклонена в будущих версиях Rust. После выполнения команд cargo build или cargo check, можно увидеть примерно такое предупреждение:

warning: the following packages contain code that will be rejected by a future version of Rust: old_dep v0.1.0
note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`

При помощи команды cargo report можно увидеть полный отчёт по коду, который будет отклонён.

Создание урезанных бинарников

Теперь Rust поддерживает удаление отладочной информации во время компоновки. Для этого в Cargo.toml надо добавить строку strip:

[profile.release]
strip = "debuginfo"

Можно также указать symbols или просто true для удаления всей символьной информации там, где это поддерживается.

Инкрементальная компиляция отключена по умолчанию

Из-за возможности возникновения ошибок десериализации (и паник) в этой версии отключена поддержка инкрементальной компиляции (можно принудительно включить через переменную среды RUSTC_FORCE_INCREMENTAL=1). Исправление уже присутствует в бета-версии Rust 1.60; если до релиза не будут найдены другие ошибки, связанные с этой проблемой, инкрементальная компиляция будет включена обратно.

Стабилизированные API

  • std::thread::available_parallelism
  • Result::copied
  • Result::cloned
  • arch::asm!
  • arch::global_asm!
  • ops::ControlFlow::is_break
  • ops::ControlFlow::is_continue
  • TryFrom for u8
  • char::TryFromCharError implementing Clone, Debug, Display, PartialEq, Copy, Eq, Error
  • iter::zip
  • NonZeroU8::is_power_of_two
  • NonZeroU16::is_power_of_two
  • NonZeroU32::is_power_of_two
  • NonZeroU64::is_power_of_two
  • NonZeroU128::is_power_of_two
  • DoubleEndedIterator for ToLowercase
  • DoubleEndedIterator for ToUppercase
  • TryFrom<&mut [T]> for [T; N]
  • UnwindSafe for Once
  • RefUnwindSafe for Once
  • armv8 neon intrinsics for aarch64

Следующие стабильные функции теперь являются const:

  • mem::MaybeUninit::as_ptr
  • mem::MaybeUninit::assume_init
  • mem::MaybeUninit::assume_init_ref
  • ffi::CStr::from_bytes_with_nul_unchecked

Другие изменения

Все остальные изменения и новшества можно увидеть по ссылке: https://blog.rust-lang.org/2022/02/24/Rust-1.59.0.html

Более подробный список изменений доступен по ссылке: https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1590-2022-02-24

 

dotcoder
()

Новый редактор — Zed

Форум — Talks

Авторы редактора Atom представляют своё новое детище — Zed, который является, как они пишут у себя на сайте, «молниеносным редактором кода для совместной работы, написанном на Rust». Основной упор сделан на супер-отзывчивости и возможности совместной работы в реальном времени. Для нового редактора, авторы, вдохновившись Mozilla WebRender, написали новый высокопроизводительный UI-фреймворк — GPUI; для совместного редактирования в реальном времени используются бесконфликтные реплицированные типы данных. Помимо поддержки LSP (Language Server Protocol), авторы создали Tree-sitter — быструю инкрементную библиотеку синтаксического анализа, которая может предоставить Zed деревья синтаксиса для более чем 50 языков. Tree-sitter уже работает и обеспечивает необходимую функциональность на Github.

https://zed.dev/

 , , , zed

dotcoder
()

Rust - самый высокооплачиваемый язык программирования в 2021 году

Форум — Talks

Rust - не только самый любимый язык несколько лет подряд согласно опросу на StackOverflow, но и самый высокооплачиваемый язык программирования в 2021 году (по крайней мере в Великобритании): https://thenextweb.com/news/move-over-python-rust-highest-paid-programming-la...

 , ,

dotcoder
()

Серия видео по Rust для начинающих

Форум — Talks

Вдобавок к курсу по Rust для начинающих, компания Microsoft опубликовала серию видео по Rust для начинающих. Серия состоит из 35 видео и затрагивает общие концепции. К концу этой серии, по идее, у вас должно быть достаточно знаний, чтобы писать свои собственные программы на Rust.

 ,

dotcoder
()

Интервью с разработчиком Reiser4 Эдуардом Шишкиным

Новости — Open Source
Группа Open Source

На habr.com опубликовано новое интервью с разработчиком Reiser4 Эдуардом Шишкиным в формате вопрос-ответ.

>>> Ссылка на интервью

 , ,

dotcoder
()

Если ты работаешь на IBM, то всё твоё время принадлежит им

Форум — Talks

«As an IBM employee, you are not allowed to use your gmail account to work in any way on VNIC. You are not allowed to use your personal email account as a „hobby“. You are an IBM employee 100% of the time. Please remove yourself completely from the maintainers file. I grant you a 1 time exception on contributions to VNIC to make this change.»

https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=4ac...

 

dotcoder
()

Microsoft опубликовал у себя курс по Rust

Форум — Talks

Microsoft опубликовал у себя на сайте курс для начинающих по языку программирования Rust.

Курс доступен на русском языке, состоит из 8 модулей и предлагает следующие пункты схемы обучения:

  • Установите средства, необходимые для написания первых строк кода на Rust.
  • Ознакомьтесь с основными понятиями Rust.
  • Узнайте, как обрабатывать ошибки.
  • Научитесь управлять памятью в Rust.
  • Используйте универсальные типы и признаки.
  • Настройте модули для пакетов и крейтов.
  • Пишите и запускайте автоматизированные тесты.
  • Создайте программу командной строки.

 ,

dotcoder
()

Rust теперь будет использоваться для разработки Android

Форум — Talks

В общем, разработчики запарились с уязвимостями, связанными с ошибками работы с памятью на C и C++, которые стабильно составляют ~70% всех найденных уязвимостей на Android высокой степени опасности. И вместо того, чтобы вкладывать ресурсы и усилия на их поиски, предупреждение и предотвращение, разработчики в первую очередь решили избегать эти ошибки. В связи с этим, разработчики объявили о поддержке языка программирования Rust для платформы AOSP (Android Open Source Project) для разработки самой ОС.

https://security.googleblog.com/2021/04/rust-in-android-platform.html

 , ,

dotcoder
()

wezterm — кроссплатформенный эмулятор терминала и мультиплексор с ускорением на GPU

Форум — Talks

Хочу познакомить вас с ещё одним кроссплатформенным эмулятором терминала и мультиплексором с ускорением на GPU – wezterm. Написан на Rust.

Возможности:

 , ,

dotcoder
()

grex 1.2.0 — генератор регулярных выражений

Новости — Разработка
grex 1.2.0 — генератор регулярных выражений
Группа Разработка

Вышла новая версия библиотеки и командной утилиты grex 1.2.0, которая позволяет создавать регулярное выражение из предоставленных пользователем тестовых данных. Созданное регулярное выражение имеет синтаксис PCRE.

grex начинался как порт JavaScript-утилиты regexgen и написан на языке программирования Rust.

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

 , , ,

dotcoder
()

Rust в ядре

Форум — Talks

В общем, сабж. В ядре Linux появились зачатки поддержки языка программирования Rust, пока что в linux-next.

https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/ru...

 , ,

dotcoder
()

Flutter 2

Форум — Talks

Разработчики Flutter в рамках мероприятия «Flutter Engage» анонсировали новое крупное обновление – Flutter 2. Также вышла новая версия Dart 2.12.

Flutter известен тем, что позволяет разработчикам создавать портативные приложения для любой платформы, которые компилируются и работают нативно. В Flatter 2 заявлена поддержка 5 операционных систем и веб, теперь один и тот же код может работать на iOS, Android, Windows, macOS, и Linux, а также в виде веб-приложений.

Из важного:

  • появилась надёжная null-безопаность
  • добавлена стабильная реализация FFI
  • новые утилиты разработки и профилирования

P.S. Canonical заявили, что все будущие десктопные и мобильные приложения будут писать на Flutter.

P.P.S. Доклады и презентации с Flutter Engage на YouTube.

 ,

dotcoder
()

Создан Rust Foundation, Microsoft и Google присоединились

Форум — Talks

Вчера был создан Rust Foundation, новая независимая некоммерческая организация, которая будет поддерживать и всячески продвигать язык программирования Rust: https://foundation.rust-lang.org/

Microsoft и Google присоединились:

https://cloudblogs.microsoft.com/opensource/2021/02/08/microsoft-joins-rust-f...

https://opensource.googleblog.com/2021/02/google-joins-rust-foundation.html

 , ,

dotcoder
()

RSS подписка на новые темы