The OpenNET Project / Index page

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

Выпуск языка программирования Rust 1.67

26.01.2023 21:56

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

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

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

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

  • Для функций async с Future::Output реализована возможность указания аннотаций "#[must_use]", включающих вывод предупреждения в случае игнорирования возвращаемого значения, что помогает выявить ошибки, вызванные предположением, что функция изменит значения, а не вернёт новое значение.
    
       #[must_use]
       async fn bar() -> u32 { 0 }
    
       async fn caller() {
           bar().await; 
       }
    
       warning: unused output of future returned by `bar` that must be used
        --> src/lib.rs:5:5
         |
       5 |     bar().await;
         |     ^^^^^^^^^^^
         |
         = note: `#[warn(unused_must_use)]` on by default
    
  • Обновлена реализация FIFO-очередей std::sync::mpsc (multi-producer single-consumer), которая переведена на использование модуля crossbeam-channel с сохранением прежнего API. Новая реализация отличается решением ряда проблем, более высокой производительностью и упрощением сопровождения кода.
  • В разряд стабильных переведена новая порция API, в том числе стабилизированы методы и реализации типажей:
  • Признак "const", определяющий возможность использования в любом контексте вместо констант, применён в функциях:
  • Реализован третий уровень поддержки для использования Rust в ядре Linux (linuxkernel), а также для платформ Sony PlayStation 1 (mipsel-sony-psx), PowerPC с AIX (powerpc64-ibm-aix), QNX Neutrino RTOS (aarch64-unknown-nto-qnx710, x86_64-pc-nto-qnx710). Третий уровень подразумевает базовую поддержку, но без автоматизированного тестирования, публикации официальных сборок и проверки возможности сборки кода.

Дополнительно можно отметить публикацию компанией ARM патчей, позволяющих использовать язык Rust для разработки драйверов и модулей ядра Linux, собираемых для систем на базе архитектуры AArch64.

  1. Главная ссылка к новости (https://blog.rust-lang.org/202...)
  2. OpenNews: В кодовой базе Chromium разрешено использование языка Rust
  3. OpenNews: Выпуск языка программирования Rust 1.66
  4. OpenNews: Фронтэнд для языка Rust доведён до готовности к интеграции в GCC 13
  5. OpenNews: Около 21% нового компилируемого кода в Android 13 написано на языке Rust
  6. OpenNews: В ядро Linux 6.1 приняты изменения, обеспечивающие поддержку языка Rust
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/58558-rust
Ключевые слова: rust
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (146) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 22:14, 26/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    долгих лет! очень рад! круто!
     
     
  • 2.22, Вы забыли заполнить поле Name (?), 22:52, 26/01/2023 [^] [^^] [^^^] [ответить]  
  • +9 +/
    https://www.youtube.com/watch?v=ItBgDuUi3Xk
     
     
  • 3.36, Аноним (36), 23:08, 26/01/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    в тему!
     
  • 2.35, Аноним (36), 23:05, 26/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > для платформ Sony PlayStation 1

    Они потерялись во времени эдак 18 лет назад.

     
     
  • 3.96, Аноним (96), 03:37, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Они идут и шум их слышен на 18 годах от текущего... пока...
     
     
  • 4.97, Аноним (36), 03:47, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Представляешь, когда они до 5-ой плойки дойдут?
     
  • 3.173, Аноним (173), 16:27, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    >> для платформ Sony PlayStation 1
    > Они потерялись во времени эдак 18 лет назад.

    Кто "они"?
    Одному чу[в|д]аку было интересно - он и запилил поддержку. Хотя мог бы попукивать в уютное старое кресло и строчить бессмысленные анти-растовые комменты опеннете.

     
     
  • 4.175, Аноним (36), 16:40, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Знаний растаманов хватает только на технологии прошлого века.
     
     
  • 5.179, Аноним (173), 16:47, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Знаний растаманов хватает только на технологии прошлого века.

    Т.е. ты нам сейчас покажешь свой порт gcc на пятую плойку (ну или хотя бы первую)? Или как обычно у опеннетных  балаболок, начнутся виляния задом?

     
     
  • 6.181, Аноним (36), 16:54, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем портировать то, что было изначально использовано самой Сонькой?! Карл, PS изначально на gcc!
     
     
  • 7.184, Аноним (173), 17:54, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Т.е. ты нам сейчас покажешь свой порт gcc на пятую плойку (ну или хотя бы первую)? Или как обычно у опеннетных  балаболок, начнутся виляния задом?
    >> Или как обычно у опеннетных  балаболок, начнутся виляния задом?
    > Зачем <виляния задом поскипаны>

    Яснопонятно.

    > Карл, PS изначально на gcc!

    Т.е ты сейчас дашь ссылку на tier3 поддержку PS в gcc или опять "как обычно"?

     
     
  • 8.192, Аноним (36), 20:30, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Sony used the free software GNU C compiler, also known as GCC ... текст свёрнут, показать
     

  • 1.6, васёк (?), 22:21, 26/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Спаcибо! Ждем больше системных компонентов на rust в Linux
     
  • 1.7, Аноним (7), 22:23, 26/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    тем временем зиг перешел на самообеспечение
     
     
  • 2.27, Аноним (27), 22:57, 26/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    И нафиг он нам нужен в новости про rust? Rust уже в ядре, а на Зиг пишут полтора человека.
     
  • 2.111, Иваня (?), 08:14, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    зиг ещё хуже раста
     
     
  • 3.121, Аноним (121), 09:48, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Почему?
     
     
  • 4.138, inferrna (ok), 12:45, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Заставить писать на нём трудно даже за деньги.

    https://www.youtube.com/watch?v=eIX9zER9vjY

     

  • 1.8, Аноним (8), 22:23, 26/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    там есть что-нибудь вроде qml? (не враппер, не gtk, не js (qml != js))

    нормальные десктоп приложухи можно писать?

     
     
  • 2.46, Аноним (46), 23:30, 26/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Slint посмотри(а вообще areweguiyet в помощь)
     
     
  • 3.69, Аноним (36), 01:15, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    просили же нормальные...
     
  • 3.228, Анонимусс (?), 18:45, 01/02/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Да кому он нужен с такой отбитой лицензией?
    Есть rui, есть tauri, есть egui, есть еще много других, не таких популярных.
     
  • 2.220, Gj (?), 14:32, 30/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Tauri
     

  • 1.9, Аноним (9), 22:25, 26/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот бы переписали на расте
     
     
  • 2.50, Аноним (50), 00:05, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На самом деле неплохой критерий для проверки состоятельности языка.
    Впрочем, я скорее за то, чтобы писать на нём новые вещи, вроде Libreddit, CSS Quantum, Veloren.
     
     
  • 3.63, Вы забыли заполнить поле Name (?), 00:41, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > На самом деле неплохой критерий для проверки состоятельности языка.
    > Впрочем, я скорее за то, чтобы писать на нём новые вещи, вроде
    > Libreddit, CSS Quantum, Veloren.

    Вот это да... Вот это нужные проекты!

     
     
  • 4.112, Аноним (50), 08:53, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Братан, без шуток нужные.
    Libreddit, в отличие от обычного Reddit на мобильных устройствах, не блокирует тебе информацию из-за того, что ты не авторизовался. Самое то, чтобы находить ту или иную информацию в популярных сообществах.
    CSS движок Quantum повысил производительность Firefox благодаря многопоточности.
    Veloren, как FOSS игра, претендует себя как альтернатива скатившемуся Cube World. Кому-то это может быть ценно, просто ты не попал в ЦА.
     

  • 1.10, Аноним (10), 22:25, 26/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > "#[must_use]"

    Надо было #[must_die] еще заимплементить на радость анонимусам.

     
     
  • 2.14, Вы забыли заполнить поле Name (?), 22:29, 26/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В некоторых проектах на С встречаю функцию die(), которая обычно делает perror и еxit. Да в perl такая есть.  
     
     
  • 3.120, AKTEON (?), 09:48, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Язык Си - язык ненависти, расовой и гендерной дискриминации.
    Насильник - программист на Си (доказанно Хансом Рейзером)
     
     
  • 4.224, Вы забыли заполнить поле Name (?), 17:51, 30/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Язык Си - язык ненависти, расовой и гендерной дискриминации.
    > Насильник - программист на Си (доказанно Хансом Рейзером)

    Кстати, Ханс не насильник. Опять растоман ошибся.

     
  • 4.225, Вы забыли заполнить поле Name (?), 17:52, 30/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Язык Си - язык ненависти, расовой и гендерной дискриминации.
    > Насильник - программист на Си (доказанно Хансом Рейзером)

    Ханс убил жену, потому что она изменяла. Ратоманам-куколдам не понять.

     
  • 2.18, Dzen Python (ok), 22:45, 26/01/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    А внезапно - почему бы и нет.
    Спецификатор, вставляющий принудительно при конпеляции шаблонно сгенерированный код, который ищет все разделяемые ресурсы там, семафоры, отслеживает логику локов внутри функции и при получении сигнала или паники корректно разлочивает, закрывает ресурсы и при необходимости удаляет созданные системные примитивы.

    Растаманьы думать не должны, они должны писать много кода за три копейки и под страхом твиттерной отмены.

     
     
  • 3.49, Аноним (49), 00:05, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Так на Rust, сынку, платят ГОРАЗДО БОЛЬШЕ чем на твоих С++ и тем более чем на чистом С.
     
     
  • 4.116, деанон (?), 09:10, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    да, да, только помимо программирования на Расте нужно еще свою подпись ставить на документах и вопросы не задавать. Очень много плотють, очень
     
  • 4.152, Аноним (152), 13:27, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Пруф? Или так блокчейн платежные системы имеешь в виду?
     

  • 1.11, Вы забыли заполнить поле Name (?), 22:26, 26/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Для функций async с Future::Output реализована возможность указания аннотаций "#[must_use]"

    Почему для async функций указание аннтоации это отдельный случай? Да в сама аннотация помечена как "This is a nightly-only experimental API." https://doc.rust-lang.org/std/hint/fn.must_use.html , а вот в С++ [[nodiscard]] в 17-ом стандарте и до этого можно было использовать через кастомные атрибуты. И это вы называете стабильным языком? Рановато еще.

     
     
  • 2.42, Аноним (42), 23:18, 26/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    У многих и стабильных языков 28 летней давности, даже такого нет
     
     
  • 3.43, Вы забыли заполнить поле Name (?), 23:20, 26/01/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > У многих и стабильных языков 28 летней давности, даже такого нет

    Ну раст не позиционирует себя как какие-то многие языки. Он лучший, самый безопасный, замена дырявой сишки. Или не так?

     
  • 2.51, НяшМяш (ok), 00:06, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    В оригинальной новости расписано подробнее. Async функция возвращает Future и аннотация must_use применялась только к этой структуре, а не к её ожидаемому результату. Теперь это починили и аннотация распространяется в том числе и на Future::Output.
     
  • 2.61, Аноним (61), 00:27, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну так в плюсах больше 30 лет ждали этой фичи, а тут уже она есть!
     
     
  • 3.85, burjui (ok), 02:07, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Сдаётся мне, 30 лет назад плюсовики даже не знали о такой фиче и полагались на своё идеальное, по мнению экспертов с Опеннета, внимание к деталям. Потом увидели её в каком-то другом языке, поняли, что годно, и потянули себе.
     
  • 2.134, freecoder (ok), 11:31, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Атрибут must_use стабильный, вы дали ссылку на функцию hint must_use, которая н... большой текст свёрнут, показать
     
     
  • 3.147, Серб (ok), 12:58, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Получается, что синтаксический сахар, скрывающий суть, был проблемой?
     
     
  • 4.151, freecoder (ok), 13:27, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Не то что бы проблемой, просто он расширил применимость синтаксиса объявления функции. Сделав возврат значения футуры синтаксически подобным возвращаемому значению функции, естественно возникла потребность применять все, что положено возвращаемым из функции значениям также и к возвращаемым из футуры, если они записаны в синтаксисе функций.
     

  • 1.15, Dzen Python (ok), 22:39, 26/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Код под 1.66 соберется под 1.67?
     
     
  • 2.28, Аноним (27), 22:58, 26/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Да.
     
     
  • 3.38, Аноним (36), 23:11, 26/01/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ты уверен?

    > ошибки, вызванные предположением, что функция изменит значения

     
     
  • 4.53, НяшМяш (ok), 00:08, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Эксперты опеннета не перестают радовать уровнем своей экспертизы.
     
     
  • 5.72, Аноним (36), 01:17, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Оказалось, что приложения на расте могут собираться с ошибками...
     
     
  • 6.80, Аноним (80), 01:37, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Раст от логических ошибок в коде не защищает никак, как и 99,9% других существующих языков. Это отчасти есть только в функциональщине с зависимыми типами. Раст это плюсы в наморднике и строгом ошейнике, дабы подсократить класс ошибок, являющийся основным источником CVE
     
     
  • 7.94, Аноним (36), 03:07, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Дак там немного другое, там UB. Так нагородили, что невозможно понять, что делает ф-я: то ли меняет значение, то ли возвращает. В общем, хренотень нагородили.
     
     
  • 8.95, Аноним (36), 03:08, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А вместо того, чтобы сесть и внимательно продумать заголовки ф-й, начали их кост... текст свёрнут, показать
     
  • 8.102, ДаНуНафиг (?), 04:28, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На каком языке сразу понятно, что делает функция bar - меняет значение или воз... текст свёрнут, показать
     
     
  • 9.106, Аноним (106), 06:18, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    В расте же Если параметр передан как mut, значит меняет ... текст свёрнут, показать
     
     
  • 10.129, Аноним (36), 11:10, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Прикинь, в других языках тоже есть var, const и out Растаманы, как обычно, взял... текст свёрнут, показать
     
     
  • 11.207, Илья (??), 08:44, 28/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Разберись сначала, потом знакомые слова пиши... текст свёрнут, показать
     
  • 9.206, Илья (??), 08:43, 28/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    меня тянет блевать от использования слов foo и bar Зачем вы их используете Он... текст свёрнут, показать
     
     
  • 10.229, Аноним (229), 20:04, 01/02/2023 [^] [^^] [^^^] [ответить]  
  • +/
    От того и используем, что никакой связи с реальностью не имеют, т к в контексте... текст свёрнут, показать
     

     ....большая нить свёрнута, показать (13)

  • 1.17, Аноним (17), 22:44, 26/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >Безопасная работа с памятью обеспечивается в Rust во время

    Про это написали, а почему про ОСОБЕННОСТИ работы с памятью не написано?

     

     ....ответы скрыты (9)

  • 1.25, ИмяХ (?), 22:54, 26/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >>для платформ Sony PlayStation

    Вот где действительно нужна безопасность!

     
     
  • 2.29, Dzen Python (ok), 22:58, 26/01/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А вот вдруг ты начнешь играть в Syphon Filter 2, а тут бамц! и Прямо в лаборатории на Гейба попрут глючные модельки из-за use-after-free? Или прямиком  перед отключение света в туннеле найдется null-указатель?

    Вишь, какие продуманные.

     
  • 2.31, Вы забыли заполнить поле Name (?), 22:59, 26/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>>для платформ Sony PlayStation
    > Вот где действительно нужна безопасность!

    Там уже можно поставить Линукс через уязвимость в браузере. Куда безопаснее?

     
  • 2.154, freecoder (ok), 13:29, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >>>для платформ Sony PlayStation
    > Вот где действительно нужна безопасность!

    Если кто-то обеспечил поддержку этой платформы, значит ему она там действительно нужна.

     

  • 1.32, Аноним (32), 23:01, 26/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Интересно.., только у меня одного получается писать на ржавом так же просто, как на питоне, только намого эффективнее?
     
     
  • 2.37, Вы забыли заполнить поле Name (?), 23:08, 26/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >  только намого эффективнее?

    Это когда кол-во кода стремится к нулю? (Все мы эксперты знаем, что лучший код - это его отстутсвие). Нет, ты не один такой.

     
     
  • 3.45, Аноним (32), 23:26, 26/01/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Да вы все равно не поймете, там за печкой...
     
  • 2.87, burjui (ok), 02:20, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Да, только у тебя одного, все остальные сидят на Опеннете и плачутся, что Rust невыносимо ужасный, а им его навязывают под страхом пыток джавой.
     
  • 2.103, Нанонимус (ok), 04:36, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Скинь примеры кода. Я то тоже могу писать на расте, не используя ссылки и лайфтаймы, используя везде исключительно владение через Vec или String, передавая все эти значения через clone. И да, это всё равно будет на порядок эффективнее питона. Только смысл в этом какой? Чтобы писать оптимальный код, сопоставимый с кодом на Си, тебе всё равно необходимо использовать ссылки/указатели. А вот с этим у раста и начинаются бесконечные приседания, аннотации всюду лайфтаймов и прочая ментальная эквилибристика. А ещё не забудь везде mut проставить, натыкать где надо Cell/RefCell, обернуть всё в Rc/Arc, расставить move у замыканий и всё это для того, чтобы заставить компилятор всё же скопилировать твой растово-идиоматичный код, который был бы в 10 короче просто с использованием обычных указателей.
     
     
  • 3.123, burjui (ok), 10:11, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Очередной онаним-анимешник рубит правду-матку, со своими 0.20 лет опыта в разработке. Оказывается, на Rust писать сложно, ой-ой-ой! Разработчики Linux-то дураки, не спросили у него, теперь придётся везде (в 10%) расставлять mut и лайфтаймы, а могли бы расставлять const через слово и не париться.
     
  • 3.149, freecoder (ok), 13:13, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Смотря что ты пишешь и как ты пишешь. Если пытаешься натянуть на Rust свои старые привычки - то да, будут бесконечные RefCell/Rc и пляски с лайфтаймами. Если же уже приноровился к Rust, то в обычном прикладном коде (мы ведь про прикладной код, так как сравниваем с Python, верно?) не будет ни лишних clone, ни проблем с лайфтаймами.


     
     
  • 4.208, Нанонимус (ok), 09:52, 28/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Всё это, безусловно, интересные теоретизирования, но хотелось бы рассмотреть кон... большой текст свёрнут, показать
     
     
  • 5.210, antonio (??), 10:55, 28/01/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    есть еще такое околокостыльное решение в оффициальной доке https://doc.rust-lang.org/nightly/core/cell/index.html#implementation-details-
     
  • 5.215, freecoder (ok), 01:39, 29/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Чем вам решение с указателем не угодило? Unsafe - это не костыль, это полноправная часть языка. Вы не знали? Просто unsafe нужно правильно использовать и по минимуму, но отказаться от него совсем невозможно.

    Теперь, что касается самоссылающихся структур. Уж извините, но за 5 лет профессиональной разработки на Rust я ни разу не испытал необходимость реализовывать такое. Это больше 10 проектов, десятки тысяч строк кода. Так что вы явно преувеличиваете, пытаясь показать, что с подобным приходится сталкиваться постоянно.

    Это не значит, что я не писал unsafe кода. Писал, когда это было оправдано и необходимо. Так что его доля вряд ли превышает 0.1% от остального кода.

     
  • 5.216, freecoder (ok), 01:51, 29/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Я вот кстати уже не первый раз замечаю, что у многих есть непонимание того, что unsafe - это не костыль, это - одна из главных "киллер-фич" языка.
     

  • 1.39, Аноним (42), 23:11, 26/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    >Для функций async с Future::Output реализована возможность указания аннотаций "#[must_use]"

    Хорошая фича. Такое есть в android, а в обычной java и kotlin нет

     
     
  • 2.40, Вы забыли заполнить поле Name (?), 23:14, 26/01/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >>Для функций async с Future::Output реализована возможность указания аннотаций "#[must_use]"
    > Хорошая фича. Такое есть в android, а в обычной java и kotlin
    > нет

    Как можно сравнивать android с java или kotlin?

     
     
  • 3.73, Аноним (36), 01:19, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • –5 +/
    а растаманам не привыкать сравнивать длинное с тёплым.
     

  • 1.41, Kuromi (ok), 23:17, 26/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Шо, опять? Ведь совсем недавно (середина декабря) был выпуск 1.66.
     
     
  • 2.44, Вы забыли заполнить поле Name (?), 23:22, 26/01/2023 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > Шо, опять? Ведь совсем недавно (середина декабря) был выпуск 1.66.
    > середина декабря

    Ты ошалел? Больше месяца прошло уже! Через неделю код уже старый. Забываешь пить смузи?

     
  • 2.150, freecoder (ok), 13:17, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Шо, опять? Ведь совсем недавно (середина декабря) был выпуск 1.66.

    Минорные релизы Rust выходят с периодичностью в 6 недель, по расписанию. С 2015 года так, привет.

     

  • 1.52, Аноним (52), 00:08, 27/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Не нужно. Мы подождем релиза carbon 1.0.
     
     
  • 2.54, НяшМяш (ok), 00:09, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    У вас уже гошка есть, не нравится?
     
     
  • 3.146, Аноним (146), 12:55, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Не нравится.
     
  • 3.153, Аноним (152), 13:28, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    эксперты по Расту знают толк в ООП
     

  • 1.57, Аноним (57), 00:16, 27/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Программирование умирает, скоро эту отрасль на 99.9% займет искусственный интеллект. У дел останутся только талантливые дарования которые могут этот самый искусственный интеллект писать, вэб-макаки и прочие останутся за кормой.
     
     
  • 2.60, Аноним (49), 00:22, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Только в твоих фантазиях.

    Заменят тебя и таких как ты, кто пишет однострочники.

    Потом наши потомки найдут трактаты идиотов которые пытались на этом "генерировать код". 10 листов описания задачи на 1 лист кода.

     
  • 2.122, th3m3 (ok), 10:07, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Уже лет 15 слышу эти вангования. Вот только что-то всё не сбывается.
     
  • 2.136, Alex (??), 12:15, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ИИ учится на прошлом опыте людей и программистов. Но, технологии бегут семимильными шагами, ИИ нужно постоянно обучать. Если программисты буду использовать только ИИ то все встанет. Но, такого не будет потому что это будет у всех, а бизнесу нужны преимущества.
     
     
  • 3.155, Аноним (152), 13:30, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Достаточно закрыть некрософт гитхаб
     
  • 3.199, Аноним (199), 22:19, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    ИИ не нужен, нужен ИР. ИИ - это просто скопище знаний, тогда как ИР способен обучаться и мыслить самостоятельно. Но человечеству до этого так же далеко, как ишаку до разума вообще.
     

  • 1.62, Аноним (62), 00:32, 27/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Как можно умудриться написать компилятор, которому нужно 32 гигабайта оперативки для сборки самого себя? Что они там курят?
     
     
  • 2.78, Аноним (36), 01:24, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Чуть больше, чем в гугле.
     
     
  • 3.79, Аноним (79), 01:34, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Что в гугл? Какой их компилятор требует столько же оперативы?
     
     
  • 4.86, Аноним (36), 02:09, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Курят чуть больше, чем в гугле.
     
  • 2.119, 111 (??), 09:17, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Бред. У меня на четырёх гигах спокойно собирается.
     
     
  • 3.135, _kp (ok), 12:11, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Если Вы собираете на 4Гб, то чем то Вы не тем занимаетесь. Если конечно это не сборка в виртуалке с 4Гб для спортивного интереса.
     
     
  • 4.169, 111 (??), 16:20, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Если Вы собираете на 4Гб, то чем то Вы не тем занимаетесь.
    > Если конечно это не сборка в виртуалке с 4Гб для спортивного
    > интереса.

    Это VPS-ка c Фряхой. Делаю всякие эксперименты на ней. Так что да, это для спортивного интереса.

     
     
  • 5.177, linux4ever (?), 16:42, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Если Вы собираете на 4Гб, то чем то Вы не тем занимаетесь.
    >> Если конечно это не сборка в виртуалке с 4Гб для спортивного
    >> интереса.
    > Это VPS-ка c Фряхой.

    А, ну тогда все ясно - Бздуны знатные неосиляторы.

     
     
  • 6.204, 111 (??), 23:40, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >>> Если Вы собираете на 4Гб, то чем то Вы не тем занимаетесь.
    >>> Если конечно это не сборка в виртуалке с 4Гб для спортивного
    >>> интереса.
    >> Это VPS-ка c Фряхой.
    > А, ну тогда все ясно - Бздуны знатные неосиляторы.

    Спасибо за комплимент!

     
  • 3.190, Аноним (62), 20:09, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > У меня на четырёх гигах спокойно собирается.

    Действительно, перепутал ебилды, прошу прощения за дезинформацию. Это было требование другого проекта, вызванное сильным распараллеливанием сборки.

    За rust зацепился, наверно, по той причине, что процесс его сборки с -O3 сегфолтился в разных местах.

     
     
  • 4.205, 111 (??), 23:41, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >> У меня на четырёх гигах спокойно собирается.
    > Действительно, перепутал ебилды, прошу прощения за дезинформацию. Это было требование
    > другого проекта, вызванное сильным распараллеливанием сборки.

    Бывает.

     

  • 1.89, eugeneko (??), 02:23, 27/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Отличный язык! Позволяет безопасно работать с памятью
     
     
  • 2.91, Аноним (91), 02:37, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Отличная память! Позволяет безопасно работать языком
     
     
  • 3.92, Аноним (36), 03:01, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Отличная работа! Безопасно запоминать позволение языком.
     
  • 2.156, Аноним (152), 13:31, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Отличный язык! Позволяет проводить поведенческие исследования.
     
     
  • 3.198, Аноним (199), 22:17, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Нет.
     

  • 1.115, Аноним (115), 09:06, 27/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Rust уже портировали на raspberry pi?
     
     
  • 2.118, 111 (??), 09:16, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Уже: https://www.raspberryconnect.com/raspbian-packages/167-raspbian-rust
     

  • 1.126, Аноним (126), 10:52, 27/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Но, ведь весь функционал раста можно реализовать и в плюсах.
     
     
  • 2.127, Аноним (36), 11:05, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    s/реализовать/реализован/
     
     
  • 3.128, васёк (?), 11:08, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    да даже на ассемблере все это можно реализовать
     
     
  • 4.144, Аноним (146), 12:52, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    У ассемблера нет чекера борова, допускает адресную арифметику.
     
     
  • 5.162, васёк (?), 13:41, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    в плюсах нет чекера борова, допускает адресную арифметику
     
  • 5.211, Аноним (211), 13:40, 28/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    У процессора нет чекера борова, допускает адресную арифметику.
     
  • 2.158, freecoder (ok), 13:34, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Но, ведь весь функционал раста можно реализовать и в плюсах.

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

     
     
  • 3.212, Вы забыли заполнить поле Name (?), 21:52, 28/01/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > потому что придётся изменить кое-что в фундаментальной философии языка и сломать обратную совместимость

    Что придется изменить в С++?

     
     
  • 4.217, freecoder (ok), 01:57, 29/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В Rust небезопасные операции являются расширением языка, который по-умолчанию безопасен. В C++ наоборот, примитивы для безопасной работы с памятью являются расширением языка, по-умолчанию небезопасного. Это два принципиально разных подхода.
     
     
  • 5.218, Вы забыли заполнить поле Name (?), 21:21, 29/01/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > В Rust небезопасные операции являются расширением языка, который по-умолчанию безопасен.
    > В C++ наоборот, примитивы для безопасной работы с памятью являются расширением
    > языка, по-умолчанию небезопасного. Это два принципиально разных подхода.

    Небезопасные операции можно запретить на уровне линтеров. Вместо обычных указателей использовать обертку (как это сделал chromium c MiraclePtr).

     

  • 1.137, Максим (??), 12:30, 27/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Синтаксис похож на исходник какой-то навороченной заскриптованной web-страницы...
     
     
  • 2.176, Аноним (36), 16:42, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > заскриптованной web-страницы

    ...дважды обфусцированной.

     
  • 2.201, Facemaker (?), 22:33, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати, статья про синтаксис: https://matklad.github.io/2023/01/26/rusts-ugly-syntax.html
     
     
  • 3.203, Анонимусс (?), 23:27, 27/01/2023 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 3.209, Facemaker (?), 10:27, 28/01/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Для тех, кто не понял юмора: статья написана известным экспертом по языку Rust Алексеем Кладовым.
     

  • 1.161, Аноним (152), 13:38, 27/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Этот язык изобрели для того, чтобы конкретно отсеять самых поехавших фанатиков, которые преданно будут летая в иллюзиях свободы и безопасности несознательно и в беспамятстве всё делать в угоду корпораций
     
     
  • 2.163, Аноним (163), 15:21, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Расту дороги неисповедимы!
     
  • 2.170, Анонимусс (?), 16:23, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну так радуйтеь! Они будут сидеть в своем загончике и никому не меша...
    О нет, сишники уже приняли их в ядро, гугел нашлепал 1.5 ляма строк кода для андроида, амазон сделал firecracker...
    Как же так-то??
     
     
  • 3.183, Аноним (17), 17:30, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >приняли их в ядро

    Удивительно, что в поделке корпораций используеется язык от корпораций(нет).

     
     
  • 4.186, Анонимусс (?), 18:16, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А что же тогда там забыла божественная сишечка? Или было просто лень переписывать?
     
     
  • 5.187, Аноним (187), 18:54, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Только малолетний недоросль может такой вопрос задать. Потому что раста не было, и потому что этот блоатваре был излишний.
     
  • 5.188, Аноним (187), 18:55, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Взять и все переписать только в малолетнем недоросле может быть легко, так же, как посуду помыть или убрать мусор за собой.
     
  • 2.172, freecoder (ok), 16:24, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Назовите хоть одну корпорацию, в которой Rust доминирует.
     
     
  • 3.189, Аноним (187), 18:57, 27/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    С помощью ваших сектантов начнет. Ваш выбор ведь вы сами сделали и вам никто его не навязывал, свободные кодеры!
     

  • 1.223, Аноним (-), 17:38, 30/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Языки развиваемые корпорациями никогда не взлетят. Расту дорогу может дать только великий Столлман, без одобрения Столлмана он не взлелит.
     
     
  • 2.226, Анонимусс (?), 18:53, 31/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Языки развиваемые корпорациями никогда не взлетят. Расту дорогу может дать только великий Торвальдс, без одобрения Торвальдс он не взлелит.
     
  • 2.227, Вы забыли заполнить поле Name (?), 05:14, 01/02/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Языки развиваемые корпорациями никогда не взлетят. Расту дорогу может дать только великий
    > Столлман, без одобрения Столлмана он не взлелит.

    Путь к одобрению Столлмана лежит через лицензию.

     

  • 1.231, швондер (?), 00:56, 25/02/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    * Messages for package dev-lang/rust-1.66.1:

    * There is NOT at least 11520 MiB disk space at "/var/tmp/portage/dev-lang/rust-1.66.1/temp"
    *
    * Space constraints set in the ebuild were not met!
    * The build will most probably fail, you should enhance the space
    * as per failed tests.
    *
    * ERROR: dev-lang/rust-1.66.1::gentoo failed (pretend phase):
    *   Build requirements not met!


    какое же это г-но

     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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