The OpenNET Project / Index page

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

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

23.09.2022 12:49

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

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

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

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

  • Повышены требования к окружению Linux в компиляторе, пакетном менеджере Cargo и стандартной библиотеке libstd - минимальные требования к Glibc подняты с версии 2.11 до 2.17, а ядра Linux c версии 2.6.32 до 3.2. Ограничения также распространяются на исполняемые файлы Rust-приложений, собранных с libstd. Новым требованиям соответствуют дистрибутивы RHEL 7, SLES 12-SP5, Debian 8 и Ubuntu 14.04. Будет прекращена поддержка RHEL 6, SLES 11-SP4, Debian 7 и Ubuntu 12.04. Пользователям, которые используют собранные инструментарием Rust исполняемые файлы в окружениях со старым ядром Linux, предложено обновить свои системы, оставаться на старых выпусках компилятора или самостоятельно поддерживать своё ответвление libstd с прослойками для сохранения совместимости.

    Среди причин прекращения поддержки старых Linux-систем упоминаются ограниченные ресурсы по продолжению сопровождения совместимости со старыми окружениями. Поддержка старых Glibc требует использования старого инструментария при проверке в системе непрерывной интеграции, в условиях повышения требований к версиям в LLVM и утилитах кросс-компиляции. Повышение требований к версии ядра связано с возможностью использования в libstd новых системных вызовов без необходимости поддержания прослоек для обеспечения совместимости со старыми ядрами.

  • Стабилизирован типаж IntoFuture, который напоминает IntoIterator, но отличается от последнего использованием ".await" вместо циклов "for ... in ...". В сочетании с IntoFuture ключевое слово ".await" может ожидать не только типаж Future, но и любые другие типы, которые можно сконвертировать в Future.
  • Утилита rust-analyzer включена в состав коллекции утилит, поставляемой в выпусках Rust. Утилита также доступа для установки при помощи rustup (rustup component add rust-analyzer).
  • В пакетном менеджере Cargo реализована возможность наследования рабочей области для исключения дублирования между пакетами типовых значений полей, таких как версии Rust и URL репозиториев. Также добавлена поддержка сборки сразу для нескольких целевых платформ (в опции "--target" теперь можно указывать более одного параметра).
  • В разряд стабильных переведена новая порция API, в том числе стабилизированы методы и реализации типажей:
  • В основной состав (core) и библиотеку alloc добавлены Си-совместимые типы, ранее стабилизированные в модуле std::ffi:
  • В модули core::ffi и std::ffi добавлены Си-типы, ранее стабилизированные в модуле std::os::raw (например, для Си-типов uint и ulong предложены типы c_uint и c_ulong):
  • Стабилизированы низкоуровневые обработчики для использования с механизмом Poll (в будущем планируется предоставить упрощённый API, не требующих использования низкоуровневых структур типа Pull и Pin):

  • Признак "const", определяющий возможность использования в любом контексте вместо констант, применён в функции slice::from_raw_parts.
  • С целью более компактного хранения данных изменена раскладка памяти структур Ipv4Addr, Ipv6Addr, SocketAddrV4 и SocketAddrV6. Возможно нарушение совместимости с единичными crate-пакетами, которые используют std::mem::transmute для низкоуровневых манипуляций со структурами.
  • В сборке компилятора rust для платформы Windows задействованы PGO-оптимизации (profile-guided optimization), позволившие поднять производительность компиляции кода на 10-20%.
  • В компиляторе реализовано новое предупреждение о неиспользуемых полях в определённых структурах.

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

  1. Главная ссылка к новости (https://blog.rust-lang.org/202...)
  2. OpenNews: Rust будет принят в состав ядра Linux 6.1. Создан Rust-драйвер для Ethernet-чипов Intel
  3. OpenNews: В GCC утверждено включение поддержки языка Rust
  4. OpenNews: Уязвимости в пакетном менеджере Cargo, применяемом для проектов на языке Rust
  5. OpenNews: WD разрабатывает NVMe-драйвер на языке Rust. Эксперименты с Rust во FreeBSD
  6. OpenNews: Выпуск языка программирования Rust 1.63
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/57816-rust
Ключевые слова: rust, gcc
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (143) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, BuildPrice (?), 12:56, 23/09/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    >> GCC 13
    >> 13

    No way.

     
     
  • 2.186, Прохожий (??), 20:41, 25/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Суеверный?
     

  • 1.6, Google (?), 13:04, 23/09/2022 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • +13 +/
     
     
  • 2.33, Аноним (33), 13:37, 23/09/2022 Скрыто модератором
  • –5 +/
     
     
  • 3.38, Аноним (38), 13:40, 23/09/2022 Скрыто модератором
  • +6 +/
     
  • 2.35, Аноним (35), 13:38, 23/09/2022 Скрыто модератором
  • –2 +/
     
     
  • 3.37, Аноним (38), 13:39, 23/09/2022 Скрыто модератором
  • +1 +/
     
     
  • 4.53, НяшМяш (ok), 13:57, 23/09/2022 Скрыто модератором
  • +/
     
     
  • 5.73, Аноним (73), 14:40, 23/09/2022 Скрыто модератором
  • +2 +/
     
     
  • 6.134, НяшМяш (ok), 00:29, 24/09/2022 Скрыто модератором
  • +/
     
  • 2.45, Аноним (45), 13:45, 23/09/2022 Скрыто модератором
  • +2 +/
     
     
  • 3.76, Аноним (76), 14:52, 23/09/2022 Скрыто модератором
  • +/
     
  • 3.94, Аноним (94), 17:13, 23/09/2022 Скрыто модератором
  • +/
     
  • 2.60, Anon659018732 (?), 14:09, 23/09/2022 Скрыто модератором
  • –1 +/
     
     
  • 3.69, Аноним (-), 14:24, 23/09/2022 Скрыто модератором
  • +2 +/
     
     
  • 4.72, Anon659018732 (?), 14:33, 23/09/2022 Скрыто модератором
  • +/
     
  • 3.77, Аноним (76), 14:53, 23/09/2022 Скрыто модератором
  • +1 +/
     
  • 2.113, Kuromi (ok), 18:43, 23/09/2022 Скрыто модератором
  • +/
     

     ....ответы скрыты модератором (15)

  • 1.9, Rev (?), 13:12, 23/09/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > В сборке компилятора rust для платформы Windows задействованы PGO-оптимизации (profile-guided optimization), позволившие поднять производительность компиляции кода на 10-20%.

    А вот за это спасибо!

     
  • 1.12, Аноним (12), 13:17, 23/09/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +32 +/
    Хороший безопасный язык, переписал на него мою программу, и она стала безопасной, хотя до этого была небезопасной. Я думаю, это благодаря безопасной работе с памятью, с целью исключить небезопасность при работе с памятью. Благодаря этому достигается безопасность. А небезопасность там отлавливается на этапе компиляции, так что небезопасности во время выполнения нет, только безопасность остается. А небезопасность, выходит, исключается.
     
     
  • 2.29, Аноним (38), 13:34, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Всё так в этом вся магия языка. Почти тоже самое как магия эпл.
     
     
  • 3.58, Пан (?), 14:00, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А внутре у нея неонка?
     
     
  • 4.115, Аноним (115), 19:14, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    нет, неонку из macbook уже давно вытащили. Говорят, слишком много энергии потребляет. Дорого...
     
  • 2.92, Аноним (94), 17:11, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Молодец! Повторяй это 108 раз в позе лотоса и твоя программа будет безопасной.
     
  • 2.120, Аноним (120), 21:13, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Исключается только определенный класс ошибок, а не в целом "стало безопасно". Если бы ты не строил из себя шута - знал бы об этом.
     
     
  • 3.144, Аноним (144), 05:22, 24/09/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Если бы ты не строил из себя шута - знал бы об этом.

    что за бред? где хоть какая-то логика?

     
  • 3.166, aname (?), 01:19, 25/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Не понял, безопасный язык не безопасный?
     
     
  • 4.194, Прохожий (??), 00:16, 26/09/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Объясняю, ибо мало шансов, что сам поймёшь. Rust обеспечивает безопасность только при работе с памятью. В остальном он такой же, как и другие языки.
     
  • 2.167, Ванёк (?), 02:02, 25/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В 1000 раз полезнее повторять на ночь молитву "Отче наш", сын мой!
     
     
  • 3.168, Ванёк (?), 02:04, 25/09/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ...и безопаснее!
     
  • 2.187, name (??), 20:45, 25/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Блин, а я свою не смог переписать. Пока писал,  мне стало так безопасно, что я подумал, а нафиг мне сдалось это программирование? Я ведь и код-то писал из-за опасности, а теперь безопасно и код писать не надо.
     
  • 2.200, burjui (ok), 13:14, 26/09/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ты если что и способен переписать, так это свои петросянские комменты.
     
  • 2.253, Maks (??), 08:19, 03/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Отбезопасил ты свою программу по самые помидоры! )
     

  • 1.13, Аноним (-), 13:18, 23/09/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    > независимой некоммерческой организации Rust Foundation

    Первое предложение и уже наврали. Организация как минимум зависит от гугла и майкрософта.

     
     
  • 2.15, Анонн (?), 13:23, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ты про спонсорство Microsoft, Meta, Oracle, Huawei?
     
     
  • 3.17, Аноним (-), 13:24, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Кто платит, то и женщину танцует.
     
  • 2.28, Аноним (28), 13:33, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Опеннет экспертов не попадешь, они за милю чувствуют ложь.
    Если конечно смогут понять написанное
     
     
  • 3.170, мелкософта (?), 03:04, 25/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ну конечно эти организации ну никак нах них не влияют. А деньги у них с доната на патроне, ага.
     
     
  • 4.195, Аноним (28), 07:19, 26/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Влияют, примерно на одну десятую каждая
    Это собственно и называется независимая некоммерческая организация
     
  • 4.220, Индеец Огромный Кадык (?), 21:09, 29/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Скорее, на бонгакамс.
     

  • 1.18, ИмяХ (?), 13:25, 23/09/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    И снова три абзаца подряд мантры про безопасность.
     
     
  • 2.21, Анонн (?), 13:27, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Это уже вопрос к автору новости - зачем копипастить это из предыдущей?
    В оригинале всего этого нет https://blog.rust-lang.org/2022/09/22/Rust-1.64.0.html
     

  • 1.19, Аноним (28), 13:26, 23/09/2022 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • –1 +/
     
     
  • 2.20, Аноним (-), 13:27, 23/09/2022 Скрыто модератором
  • +6 +/
     
  • 2.23, Анонн (?), 13:29, 23/09/2022 Скрыто модератором
  • +4 +/
     
     
  • 3.31, Аноним (38), 13:35, 23/09/2022 Скрыто модератором
  • +1 +/
     
     
  • 4.48, Урри (ok), 13:47, 23/09/2022 Скрыто модератором
  • +2 +/
     

     ....ответы скрыты модератором (4)

  • 1.50, YetAnotherOnanym (ok), 13:50, 23/09/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    > Методы работы с памятью в Rust избавляют разработчикаНичего плохого не могу сказать про раст (по той простой причине, что не пишу на нём) но эта реклама утомляет.
     
     
  • 2.137, Аноним (137), 00:50, 24/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Я таки почитал доку
    ИМХО:
    Быстрее сишки оно не будет, но почти
    С версии 1.0 там много чего поменялось, уже вроде можно в прод
    Реклама не реклама, действительно решает 99%
    Есть косяк - на си можно всё, совсем всё; на ржавом тебе спецификацией языка рельсы делают и после си это напрягает. Вот прям бесит. Причём понимаешь, что вроде всё разумно, но бесит и всё)
    Вседозволенность заменили на "осознонную необходимость"...

    Сижу, учу

     
     
  • 3.145, eganru (?), 09:36, 24/09/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    i Быстрее сишки оно не будет, но почти i - смотрел disasm сгенерированного на... большой текст свёрнут, показать
     
     
  • 4.180, Аноним (180), 14:55, 25/09/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > смотрел disasm сгенерированного на rust- хорошего мало. Уйма вызовов и копирований на ровном месте.

    Пробовал смотреть с уровнем оптимизаций release вместо debug?

     
     
  • 5.191, eganru (?), 22:35, 25/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Очевидно да.
    Пробовал думать, перед тем как писать?
     

  • 1.55, Аноним (-), 13:59, 23/09/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Почему разработчики Golang смогли добиться того, что бинарники занимают меньше места и при этом
    > а ядра Linux c версии 2.6.32 до 3.2

    поддерживают более старые ядра, чем сейчас раст? Неужели среди всех раст разумистов способных овладевать сложными концепциями овладевания не нашлось того кто бы сказал, что для системного вызова вместо линковки к libc достаточно написать несколько строчек на ассемблере?

     
     
  • 2.63, Анонн (?), 14:13, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Linux Kernel 2.6.32 LTS Reaches End of Life In February 2016

    Некрофилы могут и сами поддержать.
    Даже если бы там было пару строчек написать, зачем отвлекать хотя бы одного программиста на это?

    А там не пару строчек добавить: нужно поддерживать все для тестирования этого хлама - сервера или виртуалки, гонять на них тесты, исправлять если бажина ядро-специфическия и т.д Кому это надо?

     
     
  • 3.78, Урри (ok), 14:54, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Хрустики отжигают:
    "Даже если бы там было пару строчек написать, зачем отвлекать хотя бы одного программиста на это?"

    В золотой фонд цитат опеннета.

    --
    Как будто там есть программисты :)

     
     
  • 4.81, Анонн (?), 15:01, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Смешно слышать это от тебя.
    Ты вроде как программист. По идее должен был слышать про приоритезацию задач, про целесообразность и тд.

    > Как будто там есть программисты :)

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

     
     
  • 5.123, Аноним (28), 21:48, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В соседней новости местные эксперты обзывали Линуса всякими нехорошими словами. Торвальд для них не аргумент, ведь эксперты знают как на самом деле надо было делать программы, на чём писать и кто настоящий программист
     
  • 5.174, Урри (ok), 12:02, 25/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Ты вроде как программист. По идее должен был слышать про приоритезацию задач,

    Слышал. Поэтому и ржу с фразы про "пару строк" вкупе с "отвлекать программистов".

     
     
  • 6.197, Аноним (28), 07:41, 26/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Что ещё ожидать от строящих из себя программистов ростоманив которые пишут фреймворк стоящий из себя язык программирования 🐽
     
  • 4.124, Аноним (28), 21:51, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В отличии от всех опеннетовских экспертов (кроме 3х человек), ТАМ действительно есть программисты
     
     
  • 5.127, Минона (ok), 22:30, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Кто эти 3-е?
     
     
  • 6.153, Аноним (28), 18:38, 24/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    https://www.opennet.ru/~n00by
    https://www.opennet.ru/~burjui

    И ещё кто-то показывал программы на react-native

     
  • 6.156, Анонн (?), 19:56, 24/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Есть еще Ivan_83, где-то выкладывал свой github, что-то для потокового вещания.
     
     
  • 7.206, burjui (ok), 22:13, 26/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати, он в том треде доказывал, что Rust не нужен, и самодисциплина позволяет писать корректный сишный код, и у меня первый же запуск его потоковой вещалки printfнул мусор. Ну да ладно, все мы грешны. Он хотя бы код пишет, а не только фантазирует в комментариях :)
     
  • 3.205, An2 (?), 21:27, 26/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > нужно поддерживать все для тестирования этого хлама - сервера или виртуалки, гонять на них тесты

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

     
     
  • 4.207, burjui (ok), 22:25, 26/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Только вот Go - далеко не Rust по возможностям. Но быстрее всех компилится ассемблер. Только вот почему-то на нём писать сложный софт никто не хочет - а жаль, ведь тогда бы можно было собрать мир за две минуты. Главное же в программировании - скорость компиляции, а не поддерживаемость и надёжность работы кода.
     

  • 1.61, iPony129412 (?), 14:10, 23/09/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Догоняют Boost
     
  • 1.66, ryoken (ok), 14:19, 23/09/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чо у вас в голове новости творится? Так что вышло, 1.63 или 1.64? Определитесь плз с показаниями.
     
     
  • 2.74, Анонн (?), 14:42, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    У них просто есть график ̶п̶о̶д̶ж̶и̶г̶а̶н̶и̶я̶ ̶п̶е̶р̶д̶а̶к̶о̶в̶ ̶н̶а̶ ̶о̶п̶е̶н̶ь̶к̶е̶ релизов - каждые шесть недель.
     
     
  • 3.96, YetAnotherOnanym (ok), 17:17, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Видать, мощно у тебя полыхает, если ты способен писать только о горящем выхлопном патрубке.
     
     
  • 4.98, Аноним (98), 17:27, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Проецируете, уважаемый.
     
     
  • 5.133, YetAnotherOnanym (ok), 00:24, 24/09/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Проецируете, уважаемый.

    Диагнозы ставить у тебя тоже получается хреново.

     

  • 1.83, Янис (?), 15:23, 23/09/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Успехов Расту, но до Си ему далеко.
     
     
  • 2.201, burjui (ok), 13:17, 26/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А ты попроси разрабов ещё UB добавить и фичи подрезать — тогда догонит.
     

  • 1.85, Аноним (85), 15:35, 23/09/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Просто очередная обёртка для работы с С-библиотеками. При чём не самая лучшая.
     
     
  • 2.86, Анонн (?), 16:27, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А какая лучше?
     
     
  • 3.90, Аноним (94), 17:05, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Смотря для чего. Для ядра, пожалуй, лучшим был бы V. А для юзеррспейса много чего придумали: D, Haxe, OCaml, недавний Carbon.
     
     
  • 4.97, Аноним (97), 17:24, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    V течёт же.
     
     
  • 5.100, Брат Анон (ok), 17:39, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Это ты сейчас из пальца высосал. Освобождать память не пробовал? Или включать при сборке бинаря GC?
     
  • 4.102, Брат Анон (ok), 17:40, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Лучший для ядра Оберон. Максимум стандартной переносимости, минимум прямой работы с железом
     
  • 4.107, я из фейсбука (?), 17:53, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Вместо V надежнее будет взять даже VasyanoLang
     
     
  • 5.122, Аноним (98), 21:44, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Это он и есть.
     

  • 1.101, Аноним (101), 17:40, 23/09/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот скажите мне. Вот эти вот :::::::::::::::::::::::::::: - это нормально?
     
     
  • 2.103, Брат Анон (ok), 17:41, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ещё вот это напиши пару раз -- точно будет ненормально.
     
  • 2.111, Онанистмус (?), 18:27, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В С++ так же:
    awaitable<void> echo(tcp::socket socket)
    {
      try
      {
        char data[1024];
        for (;;)
        {
          std::size_t n = co_await socket.async_read_some(boost::asio::buffer(data), use_awaitable);
          co_await async_write(socket, boost::asio::buffer(data, n), use_awaitable);
        }
      }
      catch (std::exception& e)
      {
        std::printf("echo Exception: %s\n", e.what());
      }
    }
     
  • 2.117, Анонн (?), 19:39, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нормально. В коде ты можешь сокращать пути импорта (некий аналог using в c++)

    use deeply::nested::function as my_function;

    fn main() {
       my_function();
    }

     
  • 2.132, Аноним (28), 23:15, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нет конечно. Тебе могут привести Си++ или Котлин с его доступом к свойствам через :: но в нормальных языках, таких как ANSI C, такого нет
     

  • 1.112, Аноним (112), 18:36, 23/09/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Гробят Linux скопом
     
  • 1.114, Аноним (114), 18:52, 23/09/2022 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • +/
     
     
  • 2.116, Аноним (112), 19:17, 23/09/2022 Скрыто модератором
  • +5 +/
     
     
  • 3.147, Rustoman (?), 12:07, 24/09/2022 Скрыто модератором
  • +/
     
     
  • 4.148, Rustoman (?), 12:09, 24/09/2022 Скрыто модератором
  • –1 +/
     
  • 2.118, Аноним (85), 19:58, 23/09/2022 Скрыто модератором
  • +/
     
  • 2.129, Аноним (28), 22:39, 23/09/2022 Скрыто модератором
  • –2 +/
     
     
  • 3.152, Аноним (152), 17:34, 24/09/2022 Скрыто модератором
  • +/
     
  • 2.138, Аноним (137), 00:58, 24/09/2022 Скрыто модератором
  • +1 +/
     

     ....ответы скрыты модератором (7)

  • 1.125, Аноним (-), 22:09, 23/09/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/



    os::unix::process::CommandExt::process_group
    os::windows::fs::FileTypeExt::is_symlink_dir
    os::windows::fs::FileTypeExt::is_symlink_file



    Агаблин, вот вам и стдлибы для блага портабельного кода...
     
     
  • 2.126, Анонн (?), 22:25, 23/09/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну а как ты предлагаешь писать платформозависивый код?
    Городить #ifdef __linux__ #elif _WIN32 везде? Или оформить это в виде отдельного модуля?
    Что удобнее? Потому что платформозависимость никуда не денется.
     
     
  • 3.146, _kp (ok), 10:56, 24/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Если изначально предполагается писать под разные платформы, то очевидно что б не... большой текст свёрнут, показать
     
  • 3.182, Аноним (-), 17:37, 25/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну а как ты предлагаешь писать платформозависивый код?
    > Городить #ifdef __linux__ #elif _WIN32 везде? Или оформить это в виде отдельного
    > модуля?
    > Что удобнее? Потому что платформозависимость никуда не денется.

    И как на *nix сработает конструкция вида os::windows::fs::FileTypeExt::is_symlink_dir интересно, ежели без условной сборки то? Где оно имплементацию то возьмет?

     

  • 1.139, Ананоним (?), 01:34, 24/09/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Изучающие и изучившие, как вы это применяете, если он постоянно меняется?
     
     
  • 2.141, Аноним (137), 02:36, 24/09/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Там в комплекте cargo
    Контроль версий всего
    И уже только добавляют, обратная совместимость
     
  • 2.143, Аноним (143), 04:27, 24/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    За последние годы он больше прирастал фичами, чем вот именно менялся. Лет пять назад да, иное дело, но не сейчас уже
     
     
  • 3.149, Andrii (?), 13:23, 24/09/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    7 лет назад. После v1.0  все обратно совместимо.
     
     
  • 4.176, Урри (ok), 12:18, 25/09/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Сколько анонимов, и ни один в чейнджлог не смотрел.
    https://github.com/rust-lang/rust/blob/master/RELEASES.md

    Наслаждайтесь, читать под "Compatibility Notes". В каждом релизе пачка.

     
     
  • 5.179, Аноним (-), 13:03, 25/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Сколько анонимов, и ни один в чейнджлог не смотрел.
    > https://github.com/rust-lang/rust/blob/master/RELEASES.md
    >> impl Trait was accidentally accepted as the associated type value of return-position impl Trait, without fulfilling all the trait bounds of that associated type, as long as the hidden type satisfies said bounds. This has been fixed.
    >> Add assertion that transmute_copy's U is not larger than T
    >> A soundness bug in BTreeMap was fixed that allowed data it was borrowing to be dropped before the container.

    Сам-то смотрел? А точно глазками?

     
  • 2.188, Аноним (188), 21:26, 25/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Создатели языка хорошо заботятся обратной совместимости. Заявлется что после версии 1.0 можно писать код без проблем и это выполняется. То что у него частые обновления - так это же хорошо, фичи настаиваются в найтли и бета и потом стабилизируются. Процесс разработки выстроен отлично.
     

  • 1.140, Аноним (140), 02:32, 24/09/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И чем это лучше Rust 1.63?
     
     
  • 2.142, Аноним (137), 02:36, 24/09/2022 [^] [^^] [^^^] [ответить]  
  • –7 +/
    Async await
     

  • 1.154, А (??), 18:46, 24/09/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >  упоминаются ограниченные ресурсы по продолжению сопровождения совместимости со старыми окружениями

    А, ну тогда - не, не, не, не надо этого. Если на старте сил уже нет.

     
  • 1.158, Аноним (158), 21:21, 24/09/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    То есть драйвера на расте больше не будут работать с выходом новой версии ядра?
     
     
  • 2.177, Урри (ok), 12:18, 25/09/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > То есть драйвера на расте больше не будут работать с выходом новой
    > версии ядра?

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

     
     
  • 3.192, eganru (?), 22:42, 25/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    С помощью слотов можно сделать разные редакции, так что не самая большая проблема на самом деле.
    В тугие годы у меня в системе стояло 4 версии питона, тк. софт использовал разные почему-то версии интерпретатора.
     

  • 1.159, Аноним (158), 21:22, 24/09/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Все никак не стабилизируется, не то что божественная сишечка
     
     
  • 2.161, Аноним (161), 21:59, 24/09/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Сишка гамно как и все языки со скобками. Ada, бейсик, паскал - лучшие.
     
     
  • 3.163, Аноним (163), 22:34, 24/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    (Ты (на (LISP (бочку (не кати!)))))
     
     
  • 4.164, Аноним (164), 00:25, 25/09/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Лисп не осилил, слишком какой-то математический
     
     
  • 5.202, burjui (ok), 13:27, 26/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ничего математического там нет с точки зрения разработки, только основная идея. В Lisp'ах вообще ничего нет, даже вменяемого синтаксиса, поэтому всё делается на синей изоленте, т.е. макросах, и это и есть главный их недостаток.
     

  • 1.165, Аноним (165), 01:13, 25/09/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    In Rust We Trust
     
  • 1.169, Ванёк (?), 02:08, 25/09/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А Rust на чём написан?
     
     
  • 2.171, Аноним (164), 04:12, 25/09/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    На русте. Написать компилятор\интерпретатор - не самая сложная задача.
     
     
  • 3.172, Аноним (172), 04:14, 25/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Написать компилятор\интерпретатор - не самая сложная задача.

    Оно и понятно, почему растопроги - тормознутые и жрущие память.

     
     
  • 4.189, Аноним (188), 21:27, 25/09/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пруфов конечно же не будет?
     
     
  • 5.209, Аноним (-), 09:27, 27/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Пруфов конечно же не будет?

    "Мы все так говорим, а значит это правда!"©


     
  • 3.203, burjui (ok), 13:30, 26/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Да вообще плёвое дело. Здесь так вообще рассадник экспертов по компиляторам, каждый по десятку написал в уме.
     
     
  • 4.232, leftpad.js (?), 21:26, 29/09/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ни в коем случае не пишите своё, а то вдруг случится непоправимое и вы действительно чему-то научитесь.
     

  • 1.181, bOOster (ok), 17:12, 25/09/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Подняли требования к ядру Linux.. Ну давайте уже, поднимайте до уровня last linux version + 1.
     
     
  • 2.183, Аноним (-), 17:56, 25/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    https://www.opennet.ru/opennews/art.shtml?num=44919
    >> Релиз системной библиотеки Glibc 2.24
    >> 05.08.2016 08:46
    >>  Для работы Glibc на архитектурах, отличных от x86 и x86_64 теперь требуется ядро Linux 3.2

    ...
    > Подняли требования к ядру Linux.. Ну давайте уже, поднимайте до уровня last linux version + 1.

    Уточни: ты очередной "совсем не паляшийся" вендузятник или просто закинулся Этодругином™®?

     
     
  • 3.185, Аноним (185), 18:42, 25/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Он просто сидит на втором пне
     
  • 3.190, Ням (??), 22:09, 25/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >язык системного программирования
    >требует особую версию ведра linux

    Мам, я сейчас буду писать свою ОС, только линукс три и два поставлю!

     
     
  • 4.193, Ананимус (?), 22:48, 25/09/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Лулз в том, что версию ведра на самом деле требует glibc, которую требует gcc из crosstool-ng.
     
     
  • 5.213, Аноним (213), 20:58, 29/09/2022 Скрыто модератором
  • +/
     
     
  • 6.249, Ананимус (?), 14:36, 30/09/2022 Скрыто модератором
  • +/
     
  • 4.208, Аноним (-), 09:26, 27/09/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>> The minimum required versions [B]for all -linux-gnu targets[/B] are now at least kernel 3.2
    >>язык системного программирования
    >>требует особую версию ведра linux
    > Мам, я сейчас буду писать свою ОС, только линукс три и два поставлю!

    Опеннетная Экспертиза, аз из!


     

  • 1.198, Аноним (-), 07:42, 26/09/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Типажи :) Только мне кажется что слишком уж перегруженная скрипта выходит, не лучше уж ли по старому со стекоподобным апи - шлеп шелп, и соседа алкоголика за стограм десятьтышстрок на луа или чемпопало еще нанять чем вот это вот все ?
     
  • 1.204, истина в последней инстанции (?), 16:52, 26/09/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Повышены требования к окружению Linux в компиляторе, пакетном менеджере Cargo и стандартной библиотеке libstd - минимальные требования к Glibc

    Ахахахаха, кучка неосиляторов. Ну никуда без тех людей которые действительно что-то умеют

     
  • 1.210, adolfus (ok), 16:15, 27/09/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Стандарт где? Через 20 лет нынешний код скомпилируется?
     
     
  • 2.211, Аноним (97), 18:32, 28/09/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Можно указать edition.
     
     
  • 3.235, Java Micro Edition (?), 21:32, 29/09/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А MIDP какой указывать? А манифест писать надо? А как же в jar упаковать?
     
  • 2.250, Аноним (172), 03:13, 01/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    стандарта нет by-design
     

  • 1.212, Аноним (213), 20:56, 29/09/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >После интеграции фронтэнда штатный инструментарий GCC сможет использоваться для компиляции программ на языке Rust без необходимости установки компилятора rustc, построенного с использованием наработок LLVM.

    Угадайте, почему "может" не превратится в "будет", а потом заглохнет, как gcj.

     
  • 1.251, Аноним (251), 12:17, 01/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Там выше кто-то запостил пример плохого нипанятного кода:
    for (int ind = 0; ind<100; ind++)
    {
    if ind < 20 || ind % 4 == 0 {continue;}
    if ind >= 70 {break;}
    int i = ind * ind;
    printf("%d %d \%i", ind, i);
    }

    Ловите рерайт:
    for (int ind = 0; ind < 100; ind+=4)
    {
    if ((ind < 20) || (ind >= 70)) continue;
    int i = ind * ind;
    printf("%d %d \%i", ind, i);
    }

    Цепочки вызовов функций для быдла.

     
     
  • 2.252, nekto (?), 20:46, 01/10/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    for (int ind = 20; ind < 71; ind += 4) {
      int i = ind * ind;
      printf("%d %d \%i", ind, i);
    }


     

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



    Спонсоры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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