The OpenNET Project / Index page

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

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

15.12.2022 22:50

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

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

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

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

  • В перечислениях c целочисленными представлениями (атрибутом "#[repr(Int)]") разрешено явное указание дискриминанта (номера варианта в перечислении), даже если перечисление содержит поля.
    
       #[repr(u8)]
       enum Foo {
           A(u8),        # дискриминант 0
           B(i8),        # дискриминант 1
           C(bool) = 42, # дискриминант 42
       }
    
  • Добавлена функция core::hint::black_box, которая просто возвращает назад принятое значение. Так как компилятор считает, что данная функция выполняет определённое действие, функцию black_box можно использовать для отключения оптимизации компилятором циклов при проведении тестирования производительности кода или при изучении генерируемого машинного кода (чтобы компилятор не посчитал код неиспользуемым и не убрал его). Например, в примере ниже указание black_box(v.as_ptr()) не позволяет компилятору считать, что вектор v не используется.
    
       use std::hint::black_box;
    
       fn push_cap(v: &mut Vec) {
           for i in 0..4 {
               v.push(i);
               black_box(v.as_ptr());
           }
       }
    
  • В пакетном менеджере "cargo" предложена команда "remove", позволяющая из командной строки удалять зависимости из манифеста Cargo.toml.
  • В разряд стабильных переведена новая порция API, в том числе стабилизированы методы и реализации типажей:
  • В шаблонах разрешено применение диапазонов "..X" и "..=X".
  • При сборке фронтэнда компилятора rustc и бэкенда LLVM задействованы режимы оптимизации LTO (Link Time Optimization) и BOLT (Binary Optimization and Layout Tool), позволяющие увеличить производительность результирующего кода и снизить потребление памяти.
  • Реализован третий уровень поддержки для платформ armv5te-none-eabi и thumbv5te-none-eabi. Третий уровень подразумевает базовую поддержку, но без автоматизированного тестирования, публикации официальных сборок и проверки возможности сборки кода.
  • Добавлена поддержка связывания с универсальными библиотеками macOS.

Дополнительно можно отметить включение в кодовую базу GCC фронтэнда компилятора языка Rust (gccrs). Фронтэнд включён в ветку GCC 13, релиз которой состоится в мае 2023 года. Начиная с GCC 13 штатный инструментарий GCC сможет использоваться для компиляции программ на языке Rust без необходимости установки компилятора rustc, построенного с использованием наработок LLVM. Реализация Rust в GCC 13 будет иметь статус бета-версии, не включаемой по умолчанию.

  1. Главная ссылка к новости (https://blog.rust-lang.org/202...)
  2. OpenNews: Фронтэнд для языка Rust доведён до готовности к интеграции в GCC 13
  3. OpenNews: Около 21% нового компилируемого кода в Android 13 написано на языке Rust
  4. OpenNews: Выпуск Arti 1.1, официальной реализации Tor на языке Rust
  5. OpenNews: Выпуск операционной системы Redox OS 0.8, написанной на языке Rust
  6. OpenNews: Выпуск языка программирования Rust 1.65
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/58333-rust
Ключевые слова: rust
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (281) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (2), 23:02, 15/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +36 +/
    Я вот до сих пор не пойму, вот что стоило создателям раста оставив полный список своих фич по безопасности и всё такое сделать просто нормальный синтаксис. Ведь казалось бы вроде всё складно говорят, но почему нельзя сделать синтаксис, который можно было бы хотя бы нормально читать. Это какая-то форма насилия над личностью или средство самовыражения? Почему, кто мне это объяснит?
     
     
  • 2.5, неаноним (?), 23:11, 15/12/2022 [^] [^^] [^^^] [ответить]  
  • +11 +/
    Это как в анекдоте - солдат должен копать не для того, чтобы вырыть яму, а для того, чтобы задолбаться...
     
     
  • 3.9, Аноним (9), 23:18, 15/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Вы видимо в армии не служили, тогда бы над этим не смеялись. Молодые люди оставленные без работы (любой) не находят ничего интереснее, чем выявлять кто является альфой, а кто омегой в коллективе. Поэтому с точки зрения любого солдата, между копать яму чтобы задолбаться и быть отпинаным сапогами сослуживцев, надо выбирать первое.

    Это вам напутствие по поводу "тупизны менеджеров". Любят их тупыми выставлять, хотя никогда ответственности ни за что и ни за кого не несли.

     
     
  • 4.15, Аноним (15), 23:26, 15/12/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Копание окопов и ям - это навык безусловно полезный, но чтобы решить проблему с выяснениями кто альфа, а кто омега, можно солдат полезным делом занять, а не имитацией деятельности. Ну хотя бы, например, военному делу научить.
     
     
  • 5.22, Аноним (22), 23:37, 15/12/2022 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Непосредственно на войне, "военное дело" занимает, максимум 1% времени.
    Остальное - обустройство жизни (уборка, готовка, заготовка, чистка-смазка, ремонт, залатывание, сон, еда, туалет, помощь в уходе за раненными, обустройство позиции, наряды, наблюдения, помощь тыловым службам. Если не рядовой - куча бумажной работы (заявки, накладные, отчётность, боевой журнал, доклады, рапорта, документация подразделения...))
     
  • 5.74, mma (?), 05:58, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >но чтобы решить проблему с выяснениями кто альфа, а кто омега, можно солдат полезным делом занять

    Омеги копают, Альфы "помогают", все давно в этом мире изобретено. И ребра/носы целы, и проблема решена)

     
  • 5.169, Аноним (169), 12:14, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем какому-то военному делу учить. Всеж знают, которое самое полезное дело, чтоб солдат занять - строить коттеджи для генералов.
     
  • 4.93, Аноним (93), 09:04, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –3 +/
    С точки зрения альфы лучше пинать сослуживцев сапогами чем копать окопы 😥
     
     
  • 5.136, псевдонимус (?), 11:10, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Значит альфа помрет не своей смертью.
     
  • 4.135, псевдонимус (?), 11:08, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Прямо вот наблюдаю последствиея это порочнейшей практики чем бы не занимался.. Лишь бы..

     
  • 4.138, Аноним (138), 11:18, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты видимо софт никогда не разрабатывал. Зачем собирать молодых людей чтобы они даже просто вебдвижек Servo не могли написать. Почему бы не сделать так чтобы они не задолбались, а просто выпустили продукт в продакшн.
     
  • 4.150, z (??), 11:45, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    И опыт армии что показал? Что если рыть, то поиски альфы прекратятся? Кому интересно всегда найдет время и способ.
     
  • 2.6, Аноним (15), 23:11, 15/12/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Синтаксис вполне нормальный, а когда к нему привыкаешь, то он становится более читаемым чем синтаксис цпп, но меня больше волнует другое. Язык по "раздутости" и сложности догоняет цпп, хотя преподносит себя как конкурент Си.
     
     
  • 3.14, Аноним (14), 23:24, 15/12/2022 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Он преподносит себя просто как язык системной разработки. А насчёт сложности - тут как с языком Scala, синтаксически фич до одури, но самых простых довольно немного, чтобы пользуясь только ими писать рабочий код. Все остальное только как средство выразить идею "красиво" или решить что-то специфические. В том же  C++ метапрограммированием на шаблонах занимаются только разработчики библиотек, обычные разрабы на зарплате в продуктовом коде используют только простые и понятные фичи шаблонов - специализацию под тип, variadic-и, perfect forwarding и SFINAE.
     
  • 3.139, Аноним (138), 11:18, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это примерно никогда?
     
  • 2.7, Аноним (7), 23:13, 15/12/2022 [^] [^^] [^^^] [ответить]  
  • –8 +/
    Синтаксис это единственная прелесть раста. Я всё ещё жду асинхронные генераторы, прежде чем его можно будет где-нибудь применить. Ну и средства отладки получше бы, у меня помнится были сложности с вычислением куда память утекает или в другом случае какого чёрта исполнение фризится на пустом месте. Буквально построчное чтение и вывод строки после регулярки, но рандомно фризится на принте. Судя по strace на мютексе и это ни о чём не говорит.
     
     
  • 3.96, Аноним (96), 09:19, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Может все-таки на регулярке фриз? Просто я не могу в это поверить, но если у вас такое, то хотелось бы подробностей.
     
     
  • 4.115, Бывалый смузихлёб (?), 10:04, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    у некоторых и МК сам по себе "звенит". Причём не каждый. Без кондёров, без катушек, без внешнего источника тактирования - которые убрали для поиска источника шума. Вот просто пищит микроконтроллер на ШИМе и всё и хоть тресни. Причём, даже неясно, чему там вообще шуметь
     
  • 3.121, 1 (??), 10:18, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –3 +/
    На РАсте ? Утекает память ? O_o
    Это же невозможно по определению языка !!!!
     
     
  • 4.141, Аноним (141), 11:23, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Рекламщики ушли, раст программист остался один на один с компилятором. Зато как нравился синтаксис - на то и купился. )
     
  • 4.201, Аноним (201), 15:37, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Скорее всего юродствуешь, тролль, но если вдруг случайно (не верю!) я не прав (тогда извини), поясню: раст в силу своей технологии управления памятью не любит циклические ссылки. Это должен уже программист контролировать, вручную обрабатывать, а иначе память не очистится в зацикленных конструкциях. Ну и конечно еще можно неверно работать с внешними сишными библиотеками.
     
  • 3.143, Аноним (141), 11:24, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Привыкайте. Много скрыто от программиста и много умолчаний. Предлагаю более серьезные платные курсы.
     
  • 2.10, th3m3 (ok), 23:20, 15/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ой, да хватит уже про синтаксис заливать. Столько лет уже прошло. Уже можно было привыкнуть 10 раз.
     
     
  • 3.75, mma (?), 06:01, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А зачем привыкать? Сегодня есть rust, потом про него забыли. Как хобби или работа для саморазвития и так пойдет.
    Вон, сколько с D носились и где он сейчас? Как были C/C++/C#/Java мейнстримом так и остались, ну Python еще гдето там болтается.
     
     
  • 4.85, Аноним (93), 07:54, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Но java, c# и python это инерпритируемые языки, они для написания системных компонентов, не предназначены.
    Даже основные реализации их виртуальных машин написаны на других языках, си++ у джава и си у питона
     
     
  • 5.342, Аноним (342), 20:50, 19/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Речь о распространенности и схожести синтаксиса. В случае чего, не нужно много переучиваться
     
  • 4.125, inferrna (ok), 10:34, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    D погубила пляска со стандартными библиотеками и версиями. Только к нему начали присматриваться, как понеслось: tango, mango, phobos, версия 2, несовместимая с 1. Ну, это почему я от него отказался. Да и недолго так носились - лет, эдак, 5, потом на убыль пошло. И корпорации его особо не использовали в продакшене.
    У раста в этом плане стабильность: код для 2015-эдишн сейчас вполне себе соберётся, носятся с ним уже скоро лет 10 как (с 2013 носятся активно), корпорациям зашёл на ура, даже тем, которые свои языки пилят.
     
  • 2.11, Аноним (11), 23:22, 15/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ты просто смогло в ML-семейство и поэтому страдаешь.

    Хотя будь Rust ближе к ML синтаксически, протащить его в массы было бы несколько сложнее. От така загогулина.

     
  • 2.20, Нанонимус (?), 23:36, 15/12/2022 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Может кто-то внятно объяснить, в что именно не так в синтаксисе раста и какие вы предлагаете альтернативы?
     
     
  • 3.36, НяшМяш (ok), 00:06, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Кто видел синтаксис плюсов, к расту претензий не имеет...
     
     
  • 4.170, Вы забыли заполнить поле Name (?), 12:15, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Похоже, что только видел.
     
  • 3.41, Аноним (41), 00:14, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Zig. Единственный язык, который выполнил свои обещания.

    Ничего лучше с системным программированием не случалось.

     
     
  • 4.45, Аноним (9), 00:22, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Что на нём системного написано?
     
     
  • 5.51, Аноним (15), 00:28, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    https://github.com/nrdmn/awesome-zig
     
  • 4.49, th3m3 (ok), 00:26, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А чего тогда про него ничего не слышно?))
     
     
  • 5.54, Аноним (15), 00:29, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Корпорации не вливают денежные массы, нет фанатов-шизиков с СДВГ.
     
  • 5.61, Аноним (41), 00:52, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Дайте время,он пока версии 0.10 (хотя на нём можно уже писать серьёзный приличный код)

    https://github.com/oven-sh/bun

     
     
  • 6.196, Вы забыли заполнить поле Name (?), 14:34, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Дайте время,он пока версии 0.10 (хотя на нём можно уже писать серьёзный
    > приличный код)
    > https://github.com/oven-sh/bun

    Ненужное и неспользуемое в проде поделие для говножс с 30% кода на плюсах. Успех, однако.

     
  • 4.80, Аноним (80), 07:11, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Сомнительный язык, как по мне.
    1. Объявляются const, которые меняют свои значения. Т.е. значение const подставляется во время выполнения программы, а не компиляции.
    2. В 'pub fn main() !void ', что значит конструкция !void? Зачем инвертируют void?

    И для версии 0.10 такие мелочи являются большим минусом.

    П.С. Мимо крокодит голанг разраб...

     
     
  • 5.81, Аноним (80), 07:12, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    3. Зашел в какую-то репу, там весь код состоит из 'pub const'.
     
  • 5.105, Аноним (41), 09:43, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Что???

    When a local variable is const, it means that after initialization, the variable's value will not change. If the initialization value of a const variable is comptime-known, then the variable is also comptime-known.

    !void это тип, который может вернуть (любую) ошибку. Обычно Error!RetType.  Очень классная конструкция, кстати.

     
     
  • 6.153, Аноним (153), 11:46, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > !void это тип, который может вернуть (любую) ошибку.

    Нет, яву вам не переплюнуть.

     
  • 6.199, yet another anonymous (?), 14:57, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > ... это тип, который может вернуть (любую) ошибку.

    Что за набор слов? "Тип, который возвращает..." --- полный п..ц.

     
     
  • 7.234, fuggy (ok), 22:18, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Конечно он криво написал. Это тип при вычислении (evaluation) которого бросается ошибка.
    Вычисление в данном случае это как в фразе "вычисли 2 + 3".
     
     
  • 8.235, yet another anonymous (?), 22:32, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Так и вы написали не лучше Вычисление типа в данном контексте это вообще что... текст свёрнут, показать
     
     
  • 9.273, fuggy (ok), 18:49, 17/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я просто интересуюсь Вам известно такая фраза как вычисление выражения Наприме... текст свёрнут, показать
     
     
  • 10.333, yet another anonymous (?), 11:03, 19/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот можете же, когда прижмут Возвращает тип --- ахинея возвращает объект ти... текст свёрнут, показать
     
  • 5.233, fuggy (ok), 22:10, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Не слышал про bottom type в теории типов? Ненаселённый тип. В других языках это Nothing или Never.
    По сути тот же тип что возвращает конструкция for(;;) { }
     
  • 4.158, Facemaker (?), 11:51, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Zig. Единственный язык, который выполнил свои обещания.

    Ну вот и посмотрим, кто победит :)

     
  • 3.86, Аноним (93), 08:01, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Профессиональным экспертам-программистам с опеннет, привыкшим к низкоуровневым си и ассемблеру, сложно понять зачем нужны строгая типизация, автоматическое управление памятью, отсутствие null, проверки комплилятором.
    Они легко управляют регистрами и памятью вручную, неопределенное поведение для них возможность оптимизации, а ограничения rust им только мешают.
     
     
  • 4.366, burjui (ok), 13:53, 25/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Неопределённое поведение для местных экспертов - как радиация: раз не видно, не слышно и не пахнет - значит, ничего нет. Программа скомпилировалась и работает? Вот и чудненько.
     
  • 3.102, Анонн (?), 09:36, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Синтаксис не такой как в сишечке, вот и людей корежит.
    Просто синдром утенка. Люди видели си и паскаль, кто-то джаву, кто-то 1с. Может еще что-то.
    А все остальное прошло мимо них.
     
     
  • 4.124, 1 (??), 10:31, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Дать бы тебе в языке синтаксиса sendmail.cf поразбираться...
    Ты был бы счастлив.
     
     
  • 5.329, Проходил мимо (?), 08:34, 19/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    sendmail.cf - это уже за гранью добра и зла.
    На мой взгляд, нельзя так над людьми издеваться.
     
  • 2.60, github (?), 00:46, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вроде как очевидный косплей C и C++. Они же вроде как ближе всех к системному программированию. Питонообразный дереференс ссылок тем ещё бы насилием над эстетикой был бы. Опять же, где lifetime метки после def вкорячивать?
     
  • 2.148, Аноним (169), 11:41, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это средство самовырождения.
     
     
  • 3.160, Аноним (160), 11:52, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Вот поэтому на нём ничего и не написали.
     
  • 2.178, Аноним (178), 13:06, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +5 +/
    А что конкретно ненормально?
    Я не защищаю Rust, просто мне интересна эта тема, языки программирования в целом, в том числе и синтаксисы, с точки зрения удобства, понятности и прочих харакретистик.
    Есть у вас конкретные примеры того что "ненормально" и как бы вы сделали нормально?
     
  • 2.184, Максим (??), 13:29, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Потому что вебщики делали.
     
  • 2.208, Px (?), 16:18, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Для меня, синтаксис раст это весомая часть от того, из-за чего я его использую (там где могу, где не могу — с++)
     
  • 2.215, warlock66613 (ok), 16:52, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    У Rust очень приятный синтаксис. Это просто такая особенность человеческого мозга, что непривычное кажется плохим; программисту про эту особенность надо знать и ей противодействовать.
     

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

  • 1.4, Аноним (4), 23:07, 15/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Он великолепен!
     
     
  • 2.151, Аноним (169), 11:45, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Растогедон?
     
     
  • 3.221, Владимир (??), 18:34, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Растогедон?

    Фракталогедон ...

     
     
  • 4.258, Аноним (153), 11:25, 17/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Там немного другое окончание: фрактадopacт.
     

  • 1.12, Аноним (12), 23:23, 15/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Как-то редко версии выходят, всего лишь раз в месяц.
     
     
  • 2.18, Аноним (18), 23:31, 15/12/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    ну да, надо чаще. А то про него могут забыть
     
     
  • 3.156, Аноним (169), 11:49, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Да пора уже отбросить это первое незначащее число номера версии.
     
  • 2.331, freecoder (ok), 10:30, 19/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Раз в полтора месяца. С момента релиза версии 1.0 в 2015 году, каждые 6 недель выходят минорные релизы. Пора бы уже привыкнуть.
     

  • 1.16, Аноним (22), 23:29, 15/12/2022 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +2 +/
     

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

  • 1.19, Аноним (19), 23:33, 15/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > реализации типажей

    Как это понимать? Куда это понимать?

     
     
  • 2.24, Аноним (24), 23:39, 15/12/2022 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Для каждого типажа программиста, своя реализация
     
     
  • 3.133, Аноним (141), 10:56, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В контексте единства ядра, общежитие си и раст можно будет охарактеризовать - взболтать но не смешивать.
     
  • 2.26, Аноним (22), 23:39, 15/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Наверное, что-то подобное тому, что в Си++...
    Те же концепции - не обязательно к классам привязаны могут быть.
     
  • 2.29, Нанонимус (?), 23:45, 15/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    impl TryFrom<Vec<T>> для Box<[T; N]>
    Вот пример реализации типажа (трейта)
     
  • 2.30, Аноним (30), 23:48, 15/12/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    есть такой типаж людей, который любит англйиские термины на русский переводить. обычно это старые больные на голову бюджетники типа преподов
     
     
  • 3.43, Аноним (22), 00:19, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    В тэбэ - мозог протатчэный?
     
  • 3.50, Аноним (22), 00:27, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Американцы и англичане - ну совсем бы не поняли, о чём это вы...
     
  • 3.224, Парень твоего папы (?), 19:06, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А вот и смузи-программист пожаловал.
     
  • 2.132, Facemaker (?), 10:55, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Как это понимать? Куда это понимать?

    **Rust-энтузиаст на проводе**
    Меня тоже корежит этот перевод "trait" -> "типаж". Но как лучше? "Свойство", "особенность", "черта", "характеристика" совсем не в кассу. "Интерфейс" тоже не то: уже изрядно перегруженное слово. "Грань" звучит странно.

     
     
  • 3.146, Аноним (30), 11:35, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    лучше trait или трейт. а вообще зачем отдельное слово?
     
  • 3.232, fuggy (ok), 22:00, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Типаж уже устоявшийся термин. Ты ещё до слова поток не дошёл, это и thread и stream. И что-то никто не спешит называть стек - стогом сена или магазинной памятью.
     
  • 3.297, лул (?), 13:25, 18/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    По-моему, лучший перевод trait'а - поведение.
     

  • 1.21, Мистер Си (?), 23:36, 15/12/2022 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +9 +/
     

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

  • 1.28, Аноним (22), 23:42, 15/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Знаете, какой-то он - ... некрасивый, что ли...
    То ли дело - брейнфак!
     
     
  • 2.300, Прохожий (??), 14:15, 18/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Да где уж ему с плюсами в "красоте" сравниться.
     

  • 1.34, Психиатор (?), 00:05, 16/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Отрицание
    Гнев <--- вы находитесь здесь
    Торг
    Депрессия
    Принятие
     
     
  • 2.46, Аноним (22), 00:22, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Интересно, будет ли Rust++ или Rust# ?
     
     
  • 3.62, Аноним (153), 00:54, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    сначала - визуал-раст
     
  • 2.53, Аноним (4), 00:29, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати, полностью лживая, нерабочая схема. В реальности "принятие" происходит редко.
     
     
  • 3.64, Аноним (64), 01:01, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    То есть ошибочен только пятый пункт, но схема все равно "полностью" лживая?
     
     
  • 4.71, Аноним (4), 02:33, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Пятый пункт ключевой, без него вся схема рушится.
     
     
  • 5.82, Аноним (93), 07:39, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Очень печально что эксперты-программисты с опеннет останутся в депрессии из за rust.
    Как же столь квалифицированные специалисты будут писать свои замечательные программы...
     
  • 5.91, Аноним (160), 08:46, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если учесть что это схема принятия неизбежного как-то неожиданно что она может быть применена в случае когда неизбежное не принимается.

    Или как в случае с этим недоязычком принятие очень сильно избежное настолько что схема полностью не имеет смысла.  

     
     
  • 6.301, Прохожий (??), 14:23, 18/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Уже вполне очевидно, за этим языком будущее. Допускаю, что каких-то возможностей в нем пока не хватает, но он уже вполне себе годный для написания большого класса программ и библиотек, что и показывает динамика развития.

    Избегать прогресс до сих пор мало у кого получалось долго, а Rust - это прогресс. Поэтому схема полностью рабочая, нравится это луддитам или нет.

     
  • 3.72, Аноним (72), 03:06, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Подтверждаю. systemd так и не стал общемировым станда.. а ой. Стал.
     
     
  • 4.94, Аноним (153), 09:11, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –3 +/
    на системду нет стандарта. Как и на раст.
     
     
  • 5.131, Аноним (141), 10:53, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Системд находится в руках кучки заговорщиком, укравших у майкрософт идею системного менеджера, потому что у  адептов много у майкрософт.
     
  • 3.276, Led (ok), 01:25, 18/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >В реальности "принятие" происходит редко.

    Естественно, наблюдаемые редко до него доживают.

     
  • 2.171, Аноним (141), 12:35, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Забыли расставить if )
     
  • 2.283, Нанонимус (?), 04:30, 18/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Стоит признать, раст слишком немощьный для низкоуровневого программирования:
    - Каст &[u16] в &[u8] невозможен без сторонних библиотек
    - Нет литералов для null terminated string
    - У половины контейнеров нет типового параметра для кастомного аллокатора, например у String
    - Сконкатенировать два массива - непосильная для раста задача: нельзя написать тип [T; N + M]
    Ну и так далее. Банальные вещи, которые в C++ есть давно и никто даже не задумывается, что этого вообще может не быть. Но зато в расте есть async, конечно, это намного важнее чем скастить или конкатенировать байты. Ведь это именно то, что мы хотим на низкоуровневом языке без сборщика мусора: писать асинхронный код!
     
     
  • 3.302, Прохожий (??), 14:47, 18/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Стоит признать, что очередной опеннетный эксперт ничего не понимает в идеологии ... большой текст свёрнут, показать
     
     
  • 4.312, Нанонимус (?), 15:35, 18/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Почему В чём принципиальная проблема Какое ещё переполнение Что мешает при ка... большой текст свёрнут, показать
     
     
  • 5.332, freecoder (ok), 10:43, 19/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А почему вы не хотите взять сырые указатели и скастить их? Почему вы хотите кастить именно ссылки, для которых запрещены небезопасные операции by design?
     
     
  • 6.339, Нанонимус (?), 16:20, 19/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Можно мне объяснить, чего небезопасного в касте &[u16] в &[u8]? Я показал пример, где это делается без всякого unsafe кода. Да, внутри там всё равно unsafe, но снаружи безопасный api, как и многое в std. Что принципиально мешает так сделать?
     
     
  • 7.345, freecoder (ok), 22:44, 19/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Что принципиально мешает так сделать?

    Ничего не мешает. Просто всего в std не утащишь. Если у вас есть понимание, что это нужно в std и в каком именно виде оно там должно быть - создайте issue.

     
  • 5.336, freecoder (ok), 13:25, 19/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Для работы с сишными строками есть типы CString и CStr. Вы можете сконструировать CStr из байтового строкового литерала:


    use std::ffi::CStr;

    const MSG: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"Hello\0") };


    Но это небезопасная операция (нет гарантии, что ваша последовательность байт обязательно заканчивается нулём). Но вы можете использовать простой макрос c_str чтобы избавиться от unsafe:


    const MSG: &CStr = c_str!("Hello");


    https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=740895

    Да, на уровне синтаксиса языка Rust нет поддержки литералов C-строк. Но её относительно легко добавить с помощью макроса.


     
     
  • 6.341, Нанонимус (?), 16:40, 19/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо за совет. Однако, видимо с точки зрения разработчиков языка создание сишных строк настолько редкая и ненужная операция, что не то что сишные литералы отсутствуют в языке, даже подобного макроса нет в std. Не понимаю что принципиально мешает это сделать?
    В итоге получается вот такой неоптимальный код при вызове сишных библиотек:
    https://github.com/grovesNL/glow/blob/main/src/native.rs#L1200
     
     
  • 7.343, freecoder (ok), 22:23, 19/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > В итоге получается вот такой неоптимальный код при вызове сишных библиотек:
    > https://github.com/grovesNL/glow/blob/main/src/native.rs#L1200

    В этом месте по другому и не сделать, тут же не литерал используется, а строковый срез &str. Так что вам все равно нужно аллоцировать строку заново, чтобы добавить ещё один
    символ в конце.

     
     
  • 8.349, Нанонимус (ok), 11:52, 20/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А почему авторы библиотеки решили принимать str, а не CStr Уж не потому ли, ч... текст свёрнут, показать
     
     
  • 9.356, freecoder (ok), 10:23, 22/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Это уже вопрос к авторам библиотеки Написать CStr вместо str не намного сложн... текст свёрнут, показать
     
  • 9.357, freecoder (ok), 10:29, 22/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Эти вещи взаимосвязаны многие вещи в Си включая строки небезопасны by design ... текст свёрнут, показать
     
     
  • 10.359, Нанонимус (ok), 12:33, 22/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Написать то не сложно, только как потом пользователи библиотеки будут вызывать э... текст свёрнут, показать
     
     
  • 11.360, freecoder (ok), 10:40, 23/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Я думаю авторы библиотеки рассчитывали, что пользователи в своем коде будут опер... текст свёрнут, показать
     
  • 11.361, freecoder (ok), 19:48, 23/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати, есть RFC и issue для добавления сишных строковых литералов https gith... текст свёрнут, показать
     
  • 4.328, Проходил мимо (?), 08:16, 19/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Мне вот недавно потребовалось выделить под буфер кусок динамической памяти, разм... большой текст свёрнут, показать
     
     
  • 5.335, freecoder (ok), 12:50, 19/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В Rust можно динамически выделять память руками, просто нужно иметь ввиду, что придется самому определить лайаут, скастить указатели и обеспечить инициализацию памяти. Это unsafe операции, так что тут ответственность ложится на плечи программиста:



    use std::{alloc::{alloc, Layout}, slice};

    fn main() {
        let n = 1000;
        let a = unsafe {
            let layout = Layout::array::<i32>(n).expect("Layout overflow");
            let ptr = alloc(layout) as *mut i32;

            ptr.write_bytes(0, n);
            slice::from_raw_parts(ptr, n)
        };
        
        println!("{a:?}");
    }


    https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=539239

     
     
  • 6.338, Проходил мимо (?), 15:38, 19/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    gt оверквотинг удален Да, подобный костыль тоже возможен, но то, что это все в... большой текст свёрнут, показать
     
     
  • 7.344, freecoder (ok), 22:36, 19/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Нужно что-то типа fn  alloc_slice(size: usize) -> Option<Box[u8]>

    Если вам нужен Box<[u8]>, то делайте так:


    vec![0; n].into_boxed_slice()



     
  • 5.340, Нанонимус (?), 16:31, 19/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А почему бы не выделить нужную память вектором Vec<u8> или Box<[u8]>?
     
     
  • 6.348, Проходил мимо (?), 07:27, 20/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Выше написано, что я так и сделал Но, в данном случае, это лишняя сущность, кот... большой текст свёрнут, показать
     
     
  • 7.350, Нанонимус (ok), 12:15, 20/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А для чего тут self.buf.set_len(n)?
    Можно после прочтнения в буффер взять слайс у &self.buf[..n] и получится то же самое, только без unsafe. Если нужно получать как результат именно Vec<u8>, можно позвать безопасный метод self.buf.resize(n, 0) или self.buf.truncate(n) который сделает то же самое что и unsafe аналог.

    Ещё у трейта Read есть вспомогательные методы, например read_exact
    https://doc.rust-lang.org/std/io/trait.Read.html#method.read_exact
    Которые игнорируют ErrorKind::Interrupted и продолжают читать дальше. Возможно, в вашем случае один из подобных вспомогательных методов упростил бы код

     
  • 7.358, freecoder (ok), 10:56, 22/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А что будет делать ваш код, если self buf будет нулевой длины Вот вариант блочн... большой текст свёрнут, показать
     

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

  • 1.39, Аноним (39), 00:13, 16/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    “Основанного проектом Mozilla”?!?!?
    А ничего, что “проект Mozilla” лет так 8 или 9 игнорировал Rust, который по сути пет-проект их сотрудника?
     
     
  • 2.47, Аноним (22), 00:24, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Да-да... а Джобс и Гейтс - в гаражах начинали, ага...
     
  • 2.164, Вы забыли заполнить поле Name (?), 12:05, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Сотрудник кстати раст не развивает.
     
  • 2.183, Максим (??), 13:27, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Кстати да, возникает резонный вопрос - почему Фаерфокс до сих пор не на Расте?
     
     
  • 3.187, Аноним (138), 14:06, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Мало мазохистов и программистов с другими девиациями чтобы это сделать.
     
  • 3.253, минона (?), 09:33, 17/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вы его давно крайний раз собирали? Раста там... много...
     
     
  • 4.337, Максим (??), 13:43, 19/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Но и С++ не мало...
     

  • 1.48, Аноним (41), 00:25, 16/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Опять попытался попробовать Rust. Уже, наверное, 4-5ый раз. Но опять провал. Уж очень, очень, чрезвычайно когнитивно сложный.

    Как человек, профессионально освоивший 10 языков программирования, для меня это очень необычно и удивительно.

    Как на этом писать многопоточные программы и разные хитрые структуры данных? Если честно, даже С++ кажется и то более понятным (без шаблонного метапрограммирования).

    Пожалуй, лучше Zig в мире системного программирования, ничего нет. На нём и останусь.

     
     
  • 2.78, pashev.ru (?), 06:24, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Всего 10? Лол. Учись, студент:

    https://git.pashev.ru/gcd
    https://git.pashev.ru/mendeleev/tree/mendeleev.rs

     
     
  • 3.84, Аноним (93), 07:43, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Многие люди второй-третий язык удержать в голове могут.
    Я например 😥
     
     
  • 4.101, Аноним (41), 09:30, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не одновременно))) А на протяжении карьеры.

    Конечно про С# (2.0) я помню... ничего)

     
  • 4.186, Аноним (186), 13:52, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    *не могут
     
  • 3.100, Аноним (100), 09:29, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, сам себя не похвалишь - никто не похвалит))
     
  • 2.79, iPony129412 (?), 06:38, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я тут резюме отправил. Там знание Rust желательно было написано.
    Так ответили "нам нужен питонист, а не плюсовик" 🤨
     
  • 2.209, Px (?), 16:22, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Кому вообще нужен c++ без метапрограммирования? 🤔
     
     
  • 3.369, wyry (?), 13:22, 26/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В C++ на самом деле не лучшее метапрограммирование, особенно, если сравнивать с языками, где оно спроектировано хорошо (например, LISP). Так что и ответ простой: C++ нужен и без метапрограммирования, это не самая сильная его часть.
     
  • 2.217, warlock66613 (ok), 17:01, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Количество — это ещё не всё. Haskell освоили?

    Разные хитрые структуры данных писать по-разному и по-хитрому: есть разные методы в зависимости от требований.

    Иногда хорошо работает подход "всё кладём в Vec, далее работаем с индексами". Я такой подход очень люблю, даже библиотеку свою сделал (https://crates.io/crates/components-arena). Но иногда издержки такого варианта неприемлемы.

    Другой подход — использовать специальные библиотеки интрузивных коллекций.

    Третий — написать сложное место как unsafe и закрыть safe оболочкой.

    Четвёртый — использовать счётчики ссылок.

    И т. д.

     

  • 1.66, Аноним (66), 01:29, 16/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Что там с выравниванием структур и вообще с организацией данных в памяти. Чет беглый взгляд привел к каким-то сериализаторам, а можно обычно просто штатно положить данные в память единообразным способом без выравнивания и прочего ...
     
     
  • 2.69, Аноним (22), 01:43, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    "Чо, сильно умный, да? - Йиш, що дають!"
    Сколько народ в 90-х на Джаву бубнел!...
    А теперь - ничего.
    Некоторые - даже удовольствие получают!
     
  • 2.70, Анон999 (?), 01:50, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    #[repr(C)]
    struct ThreeInts {
        first: i16,
        second: i8,
        third: i32
    }

    // Default representation, alignment lowered to 2.
    #[repr(packed(2))]
    struct PackedStruct {
        first: i16,
        second: i8,
        third: i32
    }

    // C representation, alignment raised to 8
    #[repr(C, align(8))]
    struct AlignedStruct {
        first: i16,
        second: i8,
        third: i32
    }

     
     
  • 3.111, Аноним (153), 09:47, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Такого ужаса даже в брейнфаке нет.
     
     
  • 4.140, Аноним (186), 11:18, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +5 +/
    опеннет эксперт по программированию первый раз увидел код.
     
     
  • 5.188, Аноним (138), 14:08, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Увидел код на расте и не стал писать на расте. Будь как эксперт не пиши на расте.
     
     
  • 6.205, Аноним (186), 15:55, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    я итак не пишу, на работе с головой хватает kotlin, java, js, php и 8 фреймворков.
     
  • 4.203, Аноним (201), 15:51, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    И в чём ужас? Буковки латинские? Или "как они посмели наши фигурные скобочки спереть"? Или i16 непонятны?
     
  • 2.219, warlock66613 (ok), 18:27, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    К счастью нет, нельзя. Этот подход доказал свою ущербность и остался в прошлом.
     
     
  • 3.284, Аноним (284), 09:30, 18/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Можно, только загрузка их займет не один такт а два.
     

  • 1.76, Аноним (76), 06:05, 16/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Любимый язык по версии JavaScript.ru
     
     
  • 2.87, Аноним (93), 08:11, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А где там опрос?
     
  • 2.109, Аноним (153), 09:46, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > по версии JavaScript

    Уже смешно :)

     

  • 1.83, Аноним (141), 07:43, 16/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Знакомлюсь с Rust. Пока первый взгляд через википедию.
    Цитата: "const — постоянные. Живут в течение всего времени работы программы. А именно, у них вообще нет определённого адреса в памяти. Это потому, что они встраиваются (inline) в каждое место, где есть их использование,"

    Получается "код, не прошедший через компилятор" не сможет получить доступ к константе? По сути это #define?

     
     
  • 2.92, Аноним (93), 08:58, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Знакомлюсь с Rust через комментарии на опеннет и понимаю что ни один эксперт с опеннет, специалист по низкоуровневым си и ассемблеру не будет на нем писать
     
  • 2.119, Аноним (141), 10:12, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    си-программист ядра так заглядывает в раст исходник. Видит знакомое const и ищет из другого модуля где же она.
     
  • 2.142, Аноним (138), 11:24, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А если враги получат доступ к твоей памяти и поменяют значение const? А если const везде встроить то сразу везде её поменять будет сложно. Это называется безоРАСТность!
     
     
  • 3.147, Аноним (141), 11:41, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Константы помещаются в память защищенную от записи. Не считайте меня кэпом я просто юнгу учу)
     
     
  • 4.172, Аноним (138), 12:41, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ты так уверен что на всех платформах и на всех архитектурах никто никаким способом не может писать в защищенную память? Это я уже не говорю про дизассамбилрование и правку самого бинарника. Ну тебе так-то и раст не нужен с такой верой)
     
     
  • 5.176, Аноним (141), 12:52, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А вы так уверены что раст-способ безупречен? Хакеры ломают программы, а вы ломаете стандарты. Трудно было синтаксис подправить чтобы объявление отражало сущность. inline незнакомо?  
     
     
  • 6.189, Аноним (138), 14:11, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Я считаю что раст дно как и все кто на нём пишут.
     
     
  • 7.243, Аноним (93), 01:20, 17/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Несомненно все люди должны прислушаться к мнению такого компетентного и уважаемого эксперта
     
  • 3.152, Аноним (141), 11:46, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    И да ядро и модули ядра в одном пространстве. Так что как и сказал общежитие раст и си это взболтать но не смешивать.
     
  • 2.162, Аноним (162), 12:00, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Глобальные переменные, живущие весь цикл программы - это static. Если ты о них. Но использовать их крайне не приветствуется, доступ только через unsafe.
    static mut VAL: ty = expr;

    const VAL: ty = expr; // строго типизированная константа, вычисленная на этапе компиляции по выражению справа

    const fn foo() {} // функция, которую можно применять как в рантайме (как обычную функцию), так и в компайлтайме в выражениях для расчета констант

     
     
  • 3.168, Аноним (141), 12:10, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А знаете почему unsafe? Потому что константа это простая сущность. А по концепции rust программист не должен иметь доступа к сущности. Не будем уточнять по какой причине (неопытность, сговор АНБ и пр.) Но Rust один из языков рекомендованных АНБ для применения. И в этом топике я показываю как разно "говорят" раст и си программисты. И идея интегрировать в единое ядро сомнительна. Они не будут понимать друг друга. Как интерфейсный? может быть.
     
     
  • 4.174, Аноним (138), 12:44, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот и свидетель АНБ насмотревшийся РЕНТВ. АНБ Ruby и Java рекомендуют. И тоже не просто так... Им то уж лучше знать у кого куда должен быть доступ.
     
     
  • 5.177, Аноним (141), 13:00, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну вот и ответственный за срабатывания алярм-фильтра АНБ. ) Говорит витеевато и непонятно. На всякий случай копипаст с этого сайта "АНБ рекомендует переходить на языки программирования, безопасно работающие с памятью
    14.11.2022 10:12"
     
     
  • 6.190, Аноним (138), 14:12, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Питон безопасно работает с памятью в рекомендованных АНБ его нет. Вопрос знатоку: "Почему?"
     
  • 6.226, Аноним Ваноним (?), 19:50, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Хоть АНБ вряд ли желает людям добра, но предположу, что они хотят, чтобы в системы входили только они по бэкдорам, а не рандомные васяны по скачаным эксплоитам на 1001 уязвимость в среднестатистическом девайсе. Ну и типа если раст такой плохой, то АНБ скорее всего делает закладки в llvm на этапе кодогенерации. Задумаемся
     
  • 2.220, warlock66613 (ok), 18:32, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, const — это не define, а inline.

    Суть в том, что для static переменной гарантируется, что она будет в программе в одном экземпляре. Для const количество экземпляров не регламентируется, от нуля и до неограничено. От const можно взять указатель, но два указателя на один const могут статься будут указывать на два разных экземпляра.

     
     
  • 3.285, Аноним (284), 09:31, 18/12/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ну так и писали бы inlineconst. Что народ ложной сущностью привлекать.
     
  • 3.287, Аноним (284), 09:36, 18/12/2022 [^] [^^] [^^^] [ответить]  
  • –4 +/
    В дополнение может кто ответить. Читал что раньше в раст были свои реализации потоков, а теперь нативные операционной системы. То есть программисту надо знать особенности потоков в ОС? Так и пишите не многопоточность, а поддержка объектной модели пригодной для многопоточности. Рекламы в раст больше чем что-то особенного. Свой синтаксис и включение наработок из других языков.
     
     
  • 4.298, warlock66613 (ok), 13:28, 18/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > То есть программисту надо знать?

    Да, программисту желательно хоть чего-то немножко знать.

     

  • 1.88, Аноним (141), 08:11, 16/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    В продолжение. Не понимаю как они собираются связывать в ядре две парадигмы Переменная? В Си переменная это именованный адрес, а в Rust это "ссылка имеющая владельца".
     
     
  • 2.99, Аноним (99), 09:23, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>> В Си переменная это именованный адрес <<<

    Ох, уж эти местные эксперты:)

     
     
  • 3.104, Аноним (153), 09:42, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Приведи пример переменной без адреса, Карл.
     
     
  • 4.106, Аноним (153), 09:43, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Сразу предупрежу, что у регистров тоже адреса, а на некоторых платформах регистры ещё и отображаются в общее адресное пространство.
     
     
  • 5.137, Аноним (186), 11:11, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Уважаемый эксперт-программист. Уточните пожалуйста, какой адрес у AX, BX, CX ?
     
     
  • 6.145, Аноним (141), 11:34, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Их адреса вшиты в инструкцию
     
     
  • 7.195, Аноним (186), 14:33, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    ты не ответил на вопрос какой адрес.
     
     
  • 8.202, Аноним (153), 15:45, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    смотри modrm - это ответ на твой вопрос ... текст свёрнут, показать
     
  • 6.155, Аноним (153), 11:48, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    гугли хотя бы modrm
     
  • 4.107, Аноним (99), 09:43, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    *(int *)0xdeadbeaf = 0xdead;
     
     
  • 5.108, Аноним (99), 09:46, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    то что слева чисто технически это и есть переменная и это не именованный адрес как прекрасно видно!
     
     
  • 6.114, Аноним (141), 10:01, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Это ничем не отличается от проходной ячейки памяти. Просто умный автор решил забрутить свой код. И сам потом не вспомнит сто там не посмотрев спеки на железо.
     
  • 6.126, Аноним (153), 10:40, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    То, что ты намакакокодил, и есть имя адреса в шестнадцатеричном представлении.
     
     
  • 7.149, Аноним (99), 11:43, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >>> имя адреса в шестнадцатеричном представлении <<<

    По вашей логике, то что справа от оператора присваивания это имя числа в шестнадцатиричном представлении? Хм... я почему-то всегда думал, что это так называемые литералы.

     
  • 7.157, Аноним (141), 11:49, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Почему "самые умные" сразу обзываются. ( При этом сам сказал глупость. Чтобы сразу боялись критиковать?
     
  • 5.113, Аноним (141), 09:58, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Это адрес без имени переменной (имя которое понятно хотя бы автору спустя какое-то время).  
     
     
  • 6.118, Аноним (99), 10:10, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Имя может быть у переменной! Содержимое переменной может являться адресом другой переменной, - такая переменная называется указателем. Но у самого адреса нет никакого имени. Адрес это просто адрес!!!
     
     
  • 7.122, Аноним (141), 10:22, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Имя это то что отличает вас от других людей. Имя ячейки памяти для этого же.
     
     
  • 8.123, Аноним (99), 10:28, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Слушайте, я уже вам всё расжевал, как только мог Если вы попрежнему считаете чт... текст свёрнут, показать
     
     
  • 9.127, Аноним (141), 10:41, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Меня убеждать не надо Я и до этого знал что имя существоет только в пределах ко... текст свёрнут, показать
     
  • 5.117, Аноним (141), 10:09, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    в си все понятно даже без определения. А вот в раст такое не прокатит. там параметрический полиморфизм и программист оперирует связываниями. И такие хаки не прокатят.
     
     
  • 6.128, Аноним (153), 10:41, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Теперь понятно, почему редох загнулся и не хочет работать на реальном железе.
     
     
  • 7.303, Прохожий (??), 15:13, 18/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Теперь понятно, что ты - пустопорожний балабол. А Редокс вполне себе на реальном железе работает https://www.redox-os.org/screens/
     
  • 4.112, Аноним (99), 09:54, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >>> переменной без адреса <<<

    Так о том и речь, - у переменной есть адрес! Переменная это область памяти содержимое которой можно изменить; да у переменной может быть имя, но это необязательно. Но уж точно переменная это НЕ какой-то там именованный адрес!

     
     
  • 5.116, Аноним (141), 10:05, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Просто в качестве имени вы использовали адрес и поместили его слева. Минуя таблицу компилятора. Вы в интернет тоже ходите минуя ДНС?
     
     
  • 6.120, Аноним (99), 10:15, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >>> вы использовали адрес <<<

    Так о том и речь, что в конечном то счете - нет никаких имен, - есть только адреса!

     
     
  • 7.129, Аноним (153), 10:43, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > нет никаких имен, - есть только адреса!

    Сразу! видно настоящего! растамана!

     
     
  • 8.130, Аноним (99), 10:46, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Если вы также считаете что В Си переменная это именованный адрес, то переубеждат... текст свёрнут, показать
     
     
  • 9.134, Аноним (141), 11:08, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Успокойтесь Все поняли что имен не существует Вот и в расте даже сущности не ... текст свёрнут, показать
     
  • 4.198, Советский инженер (?), 14:47, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    register int noadr;

    Получите и распишитесь, бездари.

     
     
  • 5.242, Аноним (242), 00:28, 17/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Реч идет о фактической адресации а не о "сахарке" который вам компилятор подсыпал.
     
     
  • 6.286, Советский инженео (?), 09:33, 18/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Речь как раз то о сахарке И о его количестве в разнь 1110 х ЯП И в 1108 том... большой текст свёрнут, показать
     
  • 2.144, Аноним (138), 11:26, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Есть один секрет они ничего и не связывают. Они кричат что все кругом дураки и что все кругом виноваты. А они святые и раст святой.  
     
  • 2.165, Маняним (?), 12:06, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > , а в Rust это "ссылка имеющая владельца".

    А запутанном С++ это просто 'constexpr int c = 123;' в отличии от просто 'const int = 123;'

     
  • 2.173, Аноним (173), 12:44, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Причем тут переменная и заинлайненное значение В расте все на порядок веселее, ... большой текст свёрнут, показать
     
     
  • 3.180, Аноним (141), 13:10, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да. Надо отучить от работы с сущностью. А потом уже подсунуть нужное при этом логика программы не пострадает.
     
  • 3.299, warlock66613 (ok), 13:34, 18/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Так что, возможно, и на const  можно получить какой-то адрес. Но физического смысла в нем не будет.

    Ну почему, будет. Компилятор любезно положит константу в память и вернёт вам соответствующий адрес, если без этого никак.

     
  • 2.227, Аноним (227), 19:54, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    продолжайте программировать на javascript не отвлекайтесь
     

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

  • 1.163, Вы забыли заполнить поле Name (?), 12:03, 16/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > В пакетном менеджере "cargo" предложена команда "remove", позволяющая из командной строки удалять зависимости из манифеста Cargo.toml.

    Теперь понятно почему так много зависимостей в проектах. Просто растоманы не могли удалить, что добавляли.

     
     
  • 2.175, Аноним (175), 12:50, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, руками то править файлы нельзя было раньше же
     
     
  • 3.179, Вы забыли заполнить поле Name (?), 13:07, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Ну да, руками то править файлы нельзя было раньше же

    С поиском всех транзитивных зависимостей?

     
     
  • 4.182, Аноним (182), 13:24, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В Cargo.toml нет транзитивных зависимостей, при чем они тут?
     
     
  • 5.194, Вы забыли заполнить поле Name (?), 14:31, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > В Cargo.toml нет транзитивных зависимостей, при чем они тут?

    Cargo.lock кто будет обновлять после удаления?

     
     
  • 6.210, Аноним (182), 16:32, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –6 +/
    Все зависимости от указанного крейта cargo remove также вычистит и из Cargo.lock. Или в чем вопрос?
     
     
  • 7.225, Вы забыли заполнить поле Name (?), 19:35, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Дурочку включил? Cargo remove только добавили. Перечитай ветку.
     
  • 6.362, freecoder (ok), 20:01, 23/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Cargo.lock кто будет обновлять после удаления?

    Cargo.lock вообще руками трогать не надо, он обновляется автоматически самим cargo (всегда так было).

     
     
  • 7.367, Вы забыли заполнить поле Name (?), 22:38, 25/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >> Cargo.lock кто будет обновлять после удаления?
    > Cargo.lock вообще руками трогать не надо, он обновляется автоматически самим cargo (всегда
    > так было).

    Ты сообщения вообще прочитал? Вот воправил ты руками cargo.toml, а cargo.lock сам обновится без какой-либо команды?

     
     
  • 8.370, freecoder (ok), 20:35, 26/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    После изменения Cargo toml при вызове команд cargo update, или cargo build, или ... текст свёрнут, показать
     

  • 1.181, Максим (??), 13:15, 16/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Зачем этот язык всё время форсят, если даже его создатель Мозилла не смогла переписать на нём свой браузер?
     
     
  • 2.185, Аноним (186), 13:47, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    чтобы было больше боли пониже спины, унижений и комментариев от опеннет экспертов.
     
     
  • 3.192, Аноним (138), 14:15, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Типичный приём смещения фокуса внимания с проблем, на ощущения.
     
     
  • 4.193, Аноним (186), 14:30, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У вас какие-то проблемы?
     
  • 2.191, Аноним (138), 14:14, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Чтобы не говорить что Мозилле облажалась.

     
  • 2.212, Без аргументов (?), 16:39, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Чтобы не как у всех. Это как BDSM UX в GIMP -- чисто по фану
     
  • 2.363, freecoder (ok), 20:08, 23/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Зачем этот язык всё время форсят, если даже его создатель Мозилла не
    > смогла переписать на нём свой браузер?

    В какой-то степени смогли, Servo даже работал. Просто не довели дело до конца, по двум причинам:

    1) Сменилось руководство и новый менеджмент сместил фокус компании и бизнесс-ориентиры.

    2) Servo утонул в растовом легаси. Проблема в том, что проект развивался вместе с языком, который в то время очень быстро и радикально менялся. Поэтому к финалу, когда Rust уже пообкатался и стабилизировался, возникла потребность переписать Servo.

    Таким образом, итог Servo - развитие языка и экосистемы Rust (он им очень во многом помог), плюс созданы некоторые компоненты, которые добавили в Firefox (WebRender, CSS engine и пр.).

     

  • 1.200, Banza1 (?), 15:03, 16/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Синтаксис похож на смесь JS, CSS и HTML..
     
     
  • 2.207, Аноним (186), 15:59, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    опеннет эксперты, не видевшие ни js, ни css, ни html строят догадки, на что они могли быть похожи.
     

  • 1.211, warlock66613 (ok), 16:32, 16/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > В перечислениях c целочисленными представлениями (атрибутом "#[repr(Int)]") разрешено явное указание дискриминанта

    Вот это реально здорово. Ещё немного и на стабильном Rust можно даже будет программировать. Но пока всё же nightly наше всё.

     
     
  • 2.228, Вы забыли заполнить поле Name (?), 20:52, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Программирование на атрибутах. Слишком много декларативщины.
     
  • 2.230, Аноним (153), 21:40, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Да они паскаль уже почти догнали!
     
     
  • 3.240, warlock66613 (ok), 23:19, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Да они паскаль уже почти догнали!

    И давно в Паскаль алгебраические типы данных завезли? Для обычных-то енумов дискриминаторы давно можно было указывать.

     
     
  • 4.330, Вратокол (?), 09:27, 19/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вы сами поняли смысл того, во что буквы сложили?
     

  • 1.213, warlock66613 (ok), 16:43, 16/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > i*::{checked_sub_unsigned, overflowing_sub_unsigned, saturating_sub_unsigned, wrapping_sub_unsigned}

    Почему-то именно там, где весьма стоило бы подсократить, любовь авторов Rust к сокращениям улетучивается.

     
     
  • 2.229, Аноним (153), 21:39, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Просто грибы были разные.
     
     
  • 3.288, Аноним (284), 09:43, 18/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Это к тому что ЯП создателем был назван по мотивам семейства грибов. Смотрел сериал Элементарно, так вот в оном эпизоде был преподаватель которой учеников просвещал при помощи грибов. Просто промелькнула ассоциация )
     

  • 1.214, Аноним (214), 16:48, 16/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А когда мозиловцы выкинут сабж из обязательных зависимостей?
     
  • 1.231, fuggy (ok), 21:50, 16/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Добавлена функция core::hint::black_box

    Функция то уже была test::bench::black_box . Вот к сожалению Bencher до сих пор в ночной версии, а штука то полезная.

    >BTreeSet::{first, last, pop_first, pop_last}
    >BTreeMap::{first_key_value, last_key_value, first_entry, last_entry, pop_first, pop_last}
    >Duration::try_from_secs_{f32,f64}

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

     
     
  • 2.236, Аноним (153), 22:40, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Когда уже можно на стабильном писать.

    Нет стандарта - будут постоянные проблемы.

     
     
  • 3.239, fuggy (ok), 23:17, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Есть стандарт. Есть Rust Edition 2015, 2018 (RFC 2052), 2021 (RFC 3085). То что нет стандарта это устаревшая информация.
    Но какие-нибудь банальные функции вроде checked_add стали стабильными только недавно.
     
     
  • 4.251, Аноним (93), 09:15, 17/12/2022 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Эти?
    https://www.rfc-editor.org/rfc/rfc2052

    https://www.rfc-editor.org/rfc/rfc3085

    Но интересно, почему разработчики rust выбрали именно такие номера

     
     
  • 5.252, Аноним (93), 09:22, 17/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что у них последовательно добавилось более 3300 предложений 😞
     
  • 4.254, Аноним (153), 11:14, 17/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    RFC - не стандарты, это "Request for Comments".
     
     
  • 5.255, Аноним (153), 11:17, 17/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Иными словами, RFC - "тема для обсуждения". И уж никак не стандарт.
     
     
  • 6.304, Прохожий (??), 15:21, 18/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Иными словами, отсутствие стандарта в общепринятом понимании этого слова (отдельный документ) не помешало однако создателям GCC добавить поддержку Rust. Поэтому как бы аргумент "нет стандарта" уже совсем не аргумент.
     
     
  • 7.368, Вы забыли заполнить поле Name (?), 22:41, 25/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Иными словами, отсутствие стандарта в общепринятом понимании этого слова (отдельный документ)
    > не помешало однако создателям GCC добавить поддержку Rust. Поэтому как бы
    > аргумент "нет стандарта" уже совсем не аргумент.

    Дааа, вот когда твоя программа на расте не будет собираться при переходе на gcc-шную версию, вот тогда ты вспомнишь про отстуствие стандарта.

     
  • 2.241, warlock66613 (ok), 23:50, 16/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я перейду на стабильный когда там появятся все необходимые мне фичи Это включае... большой текст свёрнут, показать
     
     
  • 3.256, Аноним (153), 11:20, 17/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > когда там появятся
    > #![feature(alloc_error_handler)]

    Прошло 16 лет разработки...

     
     
  • 4.260, Facemaker (?), 13:05, 17/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >Прошло 16 лет разработки...

    Типичный комментарий опеннетного эксперта :).

     
     
  • 5.267, Аноним (267), 15:22, 17/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ты такой типичный что мы знаем все твои комментарии наперед.
     
  • 4.261, Вы забыли заполнить поле Name (?), 13:25, 17/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> когда там появятся
    >> #![feature(alloc_error_handler)]
    > Прошло 16 лет разработки...

    Не надо рушить веру детей в безопасного деда мороза

     
  • 3.305, Прохожий (??), 15:25, 18/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Отрасль много потеряет без тебя, поэтому весь коллектив разработчиков завтра же кинется дорабатывать так необходимые гениальному программисту всех времён и народов фичи.
     
     
  • 4.318, warlock66613 (ok), 19:50, 18/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Что за наезд на пустом месте?
     
  • 3.364, freecoder (ok), 20:14, 23/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Для разработки чего вы используете Rust со всеми этими фичами?
     
     
  • 4.365, warlock66613 (ok), 18:09, 24/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Для разработки чего вы используете Rust со всеми этими фичами?

    Так, мелочёвка всякая для себя или почти для себя. Пет-проекты в общем. В основном два глобальных направления: 1) кроссплатформенная (Window, DOS, Linux и кто знает что ещё) игра-рогалик, 2) вспомогательные утилиты для модов на Morrowind, а так же метамоды — программы, которые запускаются на компьютере конечного пользователя и генерят мод (например https://www.fullrest.ru/files/espb).

     

  • 1.249, Аноним (249), 07:57, 17/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Стремится по сложности к Ada, F90 и PL/1.
    Думаю, и будущее его ждет ровно по стопам предшественников - частичные реализации, язык "для избранных", полнотой синтаксиса владеют не только лишь все.
     
     
  • 2.257, Аноним (153), 11:21, 17/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Язык Ада просто няшка по сравнению с растом!
     
  • 2.259, Facemaker (?), 11:27, 17/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >Думаю, и будущее его ждет ровно по стопам предшественников

    Очень может быть. У предшественников (Си, C++) были периоды адекватности, когда они являлись лучшим инструментом в той или иной области. Если у Раста будет такой период — это успех. А потом да, усложнится и будет вытеснен другим инструментом. Это нормально, это эволюция технологии (подробнее у Лема).

     
     
  • 3.263, Вы забыли заполнить поле Name (?), 13:28, 17/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >>Думаю, и будущее его ждет ровно по стопам предшественников
    > Очень может быть. У предшественников (Си, C++) были периоды адекватности, когда они
    > являлись лучшим инструментом в той или иной области.

    Пфффф. Они и сейчас являются таковыми. Докажи обратное. Если раст лучший, то почему за 16 лет никто на нем не написал свое РАБОЧЕЕ ядро?

     
     
  • 4.275, Анонн (?), 23:15, 17/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    О, свидетели 16 лет подтянулись...
    Уже написали рабочее ядро. Можешь даже на свой комп поставить.
     
     
  • 5.282, Аноним (153), 03:39, 18/12/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Оно не работает. Только в виртуалке.
     
  • 5.310, Вы забыли заполнить поле Name (?), 15:34, 18/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > О, свидетели 16 лет подтянулись...
    > Уже написали рабочее ядро. Можешь даже на свой комп поставить.

    Ты наверное уже поставил и пишешь из под нее?

     
     
  • 6.313, Аноним (313), 16:56, 18/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> О, свидетели 16 лет подтянулись...
    >> Уже написали рабочее ядро. Можешь даже на свой комп поставить.
    > Ты наверное уже поставил и пишешь из под нее?

    С твоей логикой (и руками) и макось с какой-нибудь солярко-бздой - "нирабоичии!".


     
     
  • 7.324, Аноним (324), 21:14, 18/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ты поставил или нет? А то с твоей логикой ты по утрам пьешь коньяк и избиваешь жену.
     
  • 4.327, Аноним (327), 23:39, 18/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Пфффф. Они и сейчас являются таковыми. Докажи обратное. Если раст лучший, то почему за 16 лет никто на нем не написал свое РАБОЧЕЕ ядро?

    Рабочее ядро есть. Нет ядра, поддерживающего все 100500 вариаций всевозможных железок. Так его и на плюсах с сишкой, внезапно, нет (для опеннетных экспертусов - нет, поддержка большей части железа даже в линуксе писалась и пишется совсем не разработчиками ядра).

     
  • 2.268, Аноним (267), 15:23, 17/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Отличный язык для того чтобы показать, а смотрите как я могу. Сделать простую вещь, но с подвыподвертом.
     
     
  • 3.271, Аноним (271), 16:18, 17/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Опеннет эксперты делятся своими фантазиями о языках программирования
     
     
  • 4.289, Аноним (284), 09:46, 18/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Смысл Вашего поста не понятен, скромный Вы наш.) Пусть скромными будут другие и мнения свои прикусят?
     

  • 1.308, Аноним (308), 15:32, 18/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Сегодня свершилось - я нашел полезную для себя программу на Rust

    https://github.com/sourcebox/dfu-buddy

     
  • 1.334, Аноним (334), 11:51, 19/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Я уже видел где-то это Так с нодой такая же обкатанная тема была, ура евентлу... большой текст свёрнут, показать
     
     
  • 2.346, Вы забыли заполнить поле Name (?), 00:22, 20/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Так с нодой такая же обкатанная тема была, ура евентлуууупппп
    > Все засуетились начали переписывать чето, и спустя 10 лет дошло что это
    > калл

    Как бы технология стабильна, на ней пишут и дальше, а сам проект под крылом Linux Foundation. И да, libuv такой кал, что его используют Julia или neovim.

    > Вышел гошка, та же песня, все начали восхвалять, это же гугл, все
    > бегом переписывать на гошку.
    > Опять прозрение...

    Эмм. На го дофига чего пишут, особенно в облачных технологиях.

    > для ентерпрайза сишарпик

    Все понятно. В след. раз лучше сразу это в начале писать, чтобы время других не отнимать.

     
     
  • 3.347, Хелоо Ворлд (?), 04:34, 20/12/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Сектант? Какое время отнимать ?
    Весь фин сектор от бирж до банкинга на джаве и шарпах.
    Весь стек апишек из каропки.

    Если противопоставить раст и сишку, то раст даже не зеро кост, он ван фрии кост, зачем пипл наябывают этим, непросвещенную в подкапотные моменты публику. Дизайна нет у языка. Синтаксис грязный, кучу атрибутов. Был бы дизайн френдли, было бы все по внятным слоям апи.  Асинхронщина сырая совсем. Ансейф без борроу чекера = та же сишка. Не реди продакшен увы. Нвим, хеликс, пару бд типа тика пока это все поделки для хоум юзинга.
    Может к 2 версии нормальная стд будет, асинхронщина, аби бинарей, и прочее , а пока онли фан юзерспейс поделки на клапе


     
     
  • 4.351, Вы забыли заполнить поле Name (?), 13:43, 20/12/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Весь фин сектор от бирж до банкинга на джаве и шарпах.

    Типичная черта местных экспертов, что они всему верят и даже не пытаются проверить. Например, tradingview, alpaca и даже тинек используют go.

     

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



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

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