The OpenNET Project / Index page

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

Выпуск языка программирования Rust 1.75 и unikernel Hermit 0.6.7

29.12.2023 18:20

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

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

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

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

  • Добавлена возможность использования "async fn" и нотации "->impl Trait" в приватных типажах. Например, используя "->impl Trait" можно написать метод типажа, возвращающий итератор:
    
       trait Container {
           fn items(&self) -> impl Iterator<Item = Widget>;
       }
    
       impl Container for MyContainer {
           fn items(&self) -> impl Iterator<Item = Widget> {
               self.items.iter().cloned()
           } 
       }
    

    Также можно создавать типажи, использующие "async fn":

    
       trait HttpService {
           async fn fetch(&self, url: Url) -> HtmlBody;
       //  будет развёрнуто в:
       //  fn fetch(&self, url: Url) -> impl Future<Output = HtmlBody>;
       }
    
  • Добавлен API для расчёта байтовых смещений относительно указателей. При работе с голыми указателями ("*const T" и "*mut T") могут потребоваться операции добавления смещения к указателю. Ранее для этого можно было использовать конструкцию вида "<*const T>::add(1)", добавляющую число байтов, соответствующее размеру "size_of::()". Новый API упрощает данную операцию и даёт возможность манипулировать смещениями в байтах без предварительного приведения типов к "*const u8" или "*mut u8".
  • Продолжена работа по увеличению производительности компилятора rustc. В состав добавлен оптимизатор BOLT, работающий на стадии после завершения компоновки и использующий сведения из заранее подготовленного профиля выполнения. Применение BOLT позволяет ускорить выполнение компилятора примерно на 2% за счёт изменения раскладки кода библиотеки librustc_driver.so для более эффективного использования процессорного кэша.

    Включена сборка компилятора rustc с опцией "-Ccodegen-units=1", позволяющей повысить качество оптимизации в LLVM. Проведённые тесты показывают увеличение производительности в случае со сборки "-Ccodegen-units=1" примерно на 1.5%. Добавленные оптимизации по умолчанию включаются только для платформы x86_64-unknown-linux-gnu.

    Ранее указанные оптимизации были опробованы компанией Google для сокращения времени сборки компонентов платформы Android, написанных на языке Rust. Применение "-C codegen-units=1" при сборке Android позволило снизить размер инструментария на 5.5% и увеличить его производительность на 1.8%, при этом время сборки самого инструментария увеличилось почти в два раза.

    Включение сборки мусора во время компоновки ("--gc-sections") дало возможность довести прирост производительности до 1.9%, включение оптимизации на этапе связывания (LTO) - до 7.7%, а оптимизаций на основе профиля выполнения кода (PGO) - до 19.8%. В финале были применены оптимизации при помощи утилиты BOLT, которые позволили довести прирост скорости сборки до 24.7%, но размер инструментария при этом вырос на 10.9%.

  • В разряд стабильных переведена новая порция API, в том числе стабилизированы методы и реализации типажей:
  • Признак "const", определяющий возможность использования в любом контексте вместо констант, применён в функциях:
  • Реализован третий уровень поддержки для платформы csky-unknown-linux-gnuabiv2hf, i586-unknown-netbsd и mipsel-unknown-netbsd. Третий уровень подразумевает базовую поддержку, но без автоматизированного тестирования, публикации официальных сборок и проверки возможности сборки кода.

Дополнительно можно отметить новую версию проекта Hermit, развивающего специализированное ядро (unikernel), написанное на языке Rust, предоставляющее инструментарий для сборки самодостаточных приложений, способных работать поверх гипервизора или голого оборудования без дополнительных прослоек и без операционной системы. При сборке приложение статически связывается с библиотекой, которая самостоятельно реализует всю необходимую функциональность, не привязываясь к ядру ОС и системным библиотекам. Код проекта распространяется под лицензиями Apache 2.0 и MIT. Поддерживается сборка для обособленного выполнения приложений, написанных на языках Rust, Go, Fortran, C и C++. Также проектом развивается собственный загрузчик, позволяющий запускать Hermit при помощи QEMU и KVM.

  1. Главная ссылка к новости (https://blog.rust-lang.org/202...)
  2. OpenNews: Выпуск языка программирования Rust 1.74. Аудит RustVMM. Переписывание Binder на Rust
  3. OpenNews: В ядро Linux 6.8 намечено включение первого сетевого драйвера на языке Rust
  4. OpenNews: В Китае запущен спутник с real-time подсистемой ядра Linux, написанной на Rust
  5. OpenNews: Google переписал на языке Rust прошивку pvmfm, используемую в Android
  6. OpenNews: Открытие кода Rust-компилятора Ferrocene
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/60364-rust
Ключевые слова: rust, unikernel, hermit
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (242) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 19:34, 29/12/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –29 +/
    Очень радостно, что раст уже в ядре. Лет через 15 всё ядро уж точно будет переписано на это чудо техники!
     
     
  • 2.3, Аноним (-), 19:52, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Версия ядра 1.0 вышла в 1994 году, те, будем считать, 30 лет.
    Так что переписать (и дописать новое) за 15 - это будет отличный результат.
     
     
  • 3.5, Тот_ещё_аноним (ok), 19:57, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Переписывать быстрее и нейронки вполне помогают
     
     
  • 4.7, Аноним (-), 19:59, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не спасибо, ими разве что лефтпады править.

    Более того, переписать просто в лоб не получится, скорее всего нужно будет менять код и взаимосвязи.

     
  • 4.15, Аноним (15), 20:41, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Особенно хорошо нейронки справляются со sql. Только не плачь, когда выпнут.
     
  • 4.16, Аноним (16), 20:41, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Нейронками можно и из Раста в Си конвертировать все нужное и тем самым избавится от лишних зависимостей.
     
     
  • 5.19, Анонин (?), 20:59, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Если конвертить из Раста в Си, то получишь все недостатки си, только на расте.
    Куча unsafe, проблем с памятью и примитивность структур и кода.
    И никакая нейронка тебе тут не поможет. Так лучше вообще не делать.
     
     
  • 6.29, Аноним (16), 21:33, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Нет конечно. Нейронки лучше всего программируют на том языке, для которого больше база в датасете, а это в первую очередь C и C++. Поэтому такой код получится еще лучше и безопаснее, чем на Расте. Она еще и пофиксит другие баги, не связанные с управлением памяти, от которых Раст вообще никак не защищает.
     
     
  • 7.30, Анонин (?), 21:38, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А что будет в датасете? Куча дырявого кода многолетней выдержки? Грязные хаки и срезание углов?
    Вот обучишь на таком - оно тебе такое же и выпрограммирует.
     
     
  • 8.39, Аноним (39), 22:09, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Это скорее к кодовой базе Раста относится, им же главное побыстрее и побольше, ч... текст свёрнут, показать
     
  • 7.148, Аноним (148), 08:03, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Большая база в датасете формируется датасатанистом. Поэтому чего там будет больше ты знать не можешь.
    А если просто тупо скормить гитхаб/гитлаб то больше там будет яваскрипта.
     
  • 2.10, Аноним (10), 20:15, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >Лет через 15 всё ядро уж точно будет переписано на это чудо техники!

    Особенно учитывая, что переписывание на БезопасТном идёт намного медленнее, чем написание на Сишке. А на разработку ядра затрачено 32 года, то ...

     
     
  • 3.12, Аноним (12), 20:26, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > медленнее, чем написание на Сишке

    Ты посчитал только написание или добавил "закладывание багов", поиск багов, тестирование, исправление и тд?
    Если нет, то верю.
    СИшка - это же пхп времен 70х.
    Для тех кто не освоил ассемблер и фортран, но нужно быстро х-к-х-к и продакшн.

     
     
  • 4.22, Аноним (16), 21:05, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А что, поиск багов, тестирование, исправление ошибок - это то, в чем программы на Rust не нуждаются?
     
     
  • 5.31, ИмяХ (ok), 21:41, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Нуждаются в гораздо меньшей степени, чем у сишных прог.
     
     
  • 6.36, Аноним (16), 21:57, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    "в гораздо меньшей" - это сколько именно, и откуда эти данные? А если сравнить не с Си, а например с программой Java, где вообще управлять памятью не нужно?
     
     
  • 7.43, Аноним (43), 22:27, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Микрософт насчитал что как минимум на 70%. Ссылки с отчётами легко гуглятся
     
     
  • 8.49, Витюшка (?), 22:43, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это не правда, у тебя даже прочитать не получилось без ошибок А ты надеешься на... текст свёрнут, показать
     
     
  • 9.223, Аноним (223), 21:06, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    cve по сути критические ошибки те это только усиливает мою мысль если конпелят... текст свёрнут, показать
     
  • 8.52, Аноним (39), 22:46, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Эти ссылки в основном из предвзятых источников Зато если копнуть глубже часто п... текст свёрнут, показать
     
     
  • 9.79, Аноним (-), 23:44, 29/12/2023 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 9.143, Вы забыли заполнить поле Name (?), 04:23, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Не ради тролинга можно ссылки на статьи ... текст свёрнут, показать
     
     
  • 10.157, Витюшка (?), 11:15, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    https way-cooler org blog 2019 04 29 rewriting-way-cooler-in-c html Пока искал... текст свёрнут, показать
     
     
  • 11.164, Аноним (12), 11:39, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну, есть пример пары неосиляторов Они пытались писать на расте как на и си, и ч... текст свёрнут, показать
     
  • 9.192, C00l_ni66a (ok), 16:51, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Да, также как и нередко встречаются те, кто использует санитайзеры и прочие анал... текст свёрнут, показать
     
     
  • 10.213, Витюшка (?), 18:02, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Это слишком сложные вопросы для Разве они понимают что такое компилятор, что он... текст свёрнут, показать
     
     
  • 11.217, Аноним (-), 18:38, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А эти Они с тобой сейчас в одной комнате Как ты можешь знать, что они понимаю... текст свёрнут, показать
     
  • 7.129, Аноним (129), 01:36, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Как минимум, ошибки обращения к освобожденной памяти, или же ошибки не вызова free или де падения от обращения по нулевому указателю не нужно решать и дебажить как класс. Это регулярные ошибки или уязвимости.
     
     
  • 8.147, Аноним (147), 07:45, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Замечательно Только существует множество инструментов для C и C которые помог... текст свёрнут, показать
     
     
  • 9.178, Прохожий (??), 13:09, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Замечательно Только этими инструментами или не пользуются они ведь опциональны... текст свёрнут, показать
     
     
  • 10.182, Витюшка (?), 13:54, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А что, Rust находит все классы ошибок Я вот выше и ниже задавал вопрос про мьют... текст свёрнут, показать
     
     
  • 11.209, Аноним (12), 17:50, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Окстись уже Зачем ты задаешь тупые вопросы Раст не находит все классы ошибок ... текст свёрнут, показать
     
  • 8.191, C00l_ni66a (ok), 16:47, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Не туда воюешь, Preventing memory leaks entirely is not one of Rust 8217 s gua... текст свёрнут, показать
     
  • 3.13, Советский инженер (ok), 20:28, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А на разработку ядра затрачено 32 года

    да, только ведь код добавлялся не линейно.

    а платиновые спонсоры скажут "надо" и работа закипит

     
     
  • 4.25, Аноним (25), 21:15, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > а платиновые спонсоры скажут "надо" и работа закипит

    так уже сказали и Торвальдс разрешил, но сам он не увидел пользы от раста и энтузиазма нет

     
  • 4.138, Аноним (10), 02:12, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ага, 9 женщин родят ребёнка через месяц.
     
     
  • 5.150, Аноним (148), 08:09, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ага, ведь ядро это 1 большой файл на С 😂
     
  • 2.17, Tron is Whistling (?), 20:51, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Они таки закопают ведро.
    Лицензия на редхат в разрезе 5 лет не сильно дешевле лицензий на винду... винде правда кал костов добавляет, но если мы берём сервис, который на аутентификацию в самой ос не завязан - кала надо мало. Для переходного периода из коробки уже есть WSL.
     
     
  • 3.77, commiethebeastie (ok), 23:37, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А смысл сравнивать стоимость рхел и венды?
     
  • 2.235, Аноним (235), 00:01, 31/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Жаль, что времени этого не будет? )
     

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

  • 1.2, Аноним (-), 19:48, 29/12/2023 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –1 +/
     

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

  • 1.18, Аноним (16), 20:57, 29/12/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +18 +/
    Глупо изучать новый сырой язык со сложным синтаксисом только ради защиты от небольшой части ошибок, связанных с неправильным управлением памятью. Проще воспользоватся инструментами вроде cppcheck или другими статическими анализаторами. Вот кстати большой список таких инструментов: https://github.com/analysis-tools-dev/static-analysis
     
     
  • 2.20, Аноним (20), 21:00, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Хоть один адекватный человек на сайте.
     
     
  • 3.50, Аноним (129), 22:45, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Мне кажется это единственная причину батхерта в сторону раста, когда уже убито множество человекочасов на изучение C++, а тут набирает популярность прямой конкурент, который позволяет проще писать поддерживаемый производительный код с минимизацией выстрелов в ногу.
     
     
  • 4.59, Аноним (39), 22:51, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Негативное восприятие всего лишь потому что вместо С++ со его реальными недостатками пропагандисты Раста всем навязывают C++ номер два с таким же убогим синтаксисом, без ООП, зато с CoC и повесточкой.
     
     
  • 5.68, Аноним (129), 23:17, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Мне кажется, про раст вы знаете чисто из комментариев на опеннете. Вместо ООП есть куда более удобные механизмы, синтаксис куда доканичнее и понятнее чем в плюсах, если сравнивать аналогичные конструкция.
     
     
  • 6.100, Аноним (100), 00:04, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Вот поэтому те кто с ООП на короткой ноге в Раст ни ногой, у тех все чего нет "нинужно". Попиши без ООП большой проект, особенно математический - захлебнешся в лапше.
     
     
  • 7.124, Аноним (129), 01:26, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Я писал на java  и на python, давно когда-то на C++, но композиция и интерфейсы как в go или rust (особенно в rust, по сравнению с go) удобнее и лаконичнее, нежели ООП и прекрасно работают и в масштабных проектах.

    Математические библиотеки прекрасно себя чувствует и пишутся на rust.

     
     
  • 8.196, C00l_ni66a (ok), 16:59, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Я писал секретный проект CIA на расте в 200kk LOC, переписал на него целиком ядр... текст свёрнут, показать
     
  • 7.175, DEF (?), 12:57, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    В математических проектах ООП ненужно вообще. Julia использует ФП и множественную диспетчеризацию, которая гораздо мощнее и лучше, чем ООП.
     
  • 6.141, Аноним (10), 02:25, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Вы отождествляете ООП и синтаксис конкретной реализации (C++)?
     
  • 4.62, Витюшка (?), 23:04, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Проблема в самом языке. Очень он неудачный получился. Не замена С++, а как правильно здесь сказали, С++2. Да, получше.

    Да, чуток получше, чуток безопаснее. А гемора с ним намного больше.

    Уже не один проект он него отказался, хотя явно там фанатики были. Тащили до конца, но не вышло.

    А что он появился - для С++ это здорово. Это значит часть программистов ушла туда и начала снова и заново переписывать всё, от Hello World до очень серьезных вещей.

     
     
  • 5.66, Аноним (129), 23:15, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    И что в нем прям очень неудачного? Мне кажется, одно лишь отсутствие нулевых указателей это эпик вин, не говоря о других удобных и полезных вещах.
     
     
  • 6.85, Аноним (85), 23:50, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Чел, не ведись на троля. Если ты не в курсе, Витюшка - это знатный местный критик Раста, который не в зуб ногой ни в Расте, ни в C++. Он из темы в тему постит забористую дичь, причем повторяет одну и ту же чушь даже после того, как в предыдущей теме его ткнули носом в факты.
     
     
  • 7.98, Аноним (100), 00:01, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Витюшка пытался вкатится в программирование на Rust, задал тут невинный вопрос, так растоманы его вместо ответа обложили хренами с ног до головы. Достойно встретили новичка, что ни говори, вот у него теперь и аллергия на Rust.
     
     
  • 8.105, фнон (?), 00:08, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Неа, он пришел со словами ваш раст овно, а воот зиг и крабон огого На вопрос п... текст свёрнут, показать
     
     
  • 9.122, Витюшка (?), 01:24, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Да ты не переживай, ты мне не конкурент Про Carbon я вообще ничего не говорил ... текст свёрнут, показать
     
     
  • 10.171, Анонин (?), 12:17, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ахахаха Но вообще ты прав, в твоем случае это принципиально ничего не меняет ... текст свёрнут, показать
     
  • 6.117, Витюшка (?), 01:15, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Отсутствие нулевых указателей также есть и в Zig. Это большой win, как ты сказал.

    Но в C++ это делается буквально парой строчек. Пользовательский тип, который инкапсулирует сырой указатель, пара переопределенных операторов, move конструкторы и готово. Проверяй в конструкторе что указатель не null.

     
     
  • 7.126, Аноним (129), 01:31, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это разные вещи - принципиально не выразимо или же можно сделать если очень захотеть и другие будут тоже правильно делать.

    Rust не единственный язык, который отказался от null, но он самый популярный и развитый из онных

     
     
  • 8.139, Витюшка (?), 02:17, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А потом говорят что это я Rust не знаю Вы сами то его знаете, программисты на R... текст свёрнут, показать
     
     
  • 9.162, Аноним (162), 11:34, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Мы же обсуждали прлблему нулевых указателей Тут вам возразить нечем и соскакива... текст свёрнут, показать
     
     
  • 10.183, Витюшка (?), 13:58, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, это замечательно Эта ошибка которая должна быть исправлена в новом языке ... текст свёрнут, показать
     
  • 5.102, фнон (?), 00:05, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Давай по новой, Витюшка, все фигня! (с)

    Ты опять пришел позориться своими "знаниями" в области Раст?
    В этот раз будешь заливать про зиг, свою уникальную задачу, когда "несколько потоков одновременно пользуют один кусок памяти" и прочие ламповые истории?
    Или ты, сегодня, придумал что-то новое?

     
     
  • 6.128, Витюшка (?), 01:36, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Есть кое-что поинтереснее и посвежее.

    Есть код мьютекса (спинлока). Естественно это суперкритичный к качеству и надёжности код. Естественно написан на Rust.

    Докажи, пожалуйста, с помощью Rust (который безопасный по памяти и гонкам данных!) что этот код:
    1. Действительно даёт mutual exclusion доступ к критической секции (т.е. работает корректно)
    2. Является deadlock-free
    3. Является starvation-free

    А то у вас одни hello world только безопасные 😀 Надо на реальных примерах.

     
     
  • 7.131, Аноним (129), 01:46, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А открыть и прочитать тот же rustbook не судьба?)
     
     
  • 8.136, Витюшка (?), 02:07, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это не ответ и почему-то я на 100 уверен что там такого нет Но ты не сливайс... текст свёрнут, показать
     
     
  • 9.163, Аноним (162), 11:37, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем мне в комментариях цитировать то что и так описано в книге, а чтобы грамот... текст свёрнут, показать
     
     
  • 10.207, C00l_ni66a (ok), 17:19, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Чтобы показать, что это действительно есть в книге, а не является плодом больног... текст свёрнут, показать
     
  • 9.172, Анонин (?), 12:27, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Чувак, уж кому-кому, а тебе мы точно ничего не должны Нам про раст уже ничего ... текст свёрнут, показать
     
  • 8.146, Аноним (146), 06:34, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    В гугл я тоже посылать умею Слив защитан ... текст свёрнут, показать
     
     
  • 9.156, Витюшка (?), 10:55, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ответ - никак Твой Rust ни черта этого не умеет В книге The Art of Multiproces... текст свёрнут, показать
     
  • 9.165, Аноним (162), 11:42, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    В комментариях не уместит нормальное объяснение А если пытаешься, то в ответ г... текст свёрнут, показать
     
     
  • 10.185, Витюшка (?), 14:09, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Многопоточное программирование сейчас абсолютно везде, даже в роутерах домашних,... большой текст свёрнут, показать
     
  • 5.144, Вы забыли заполнить поле Name (?), 04:29, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Уже не один проект он него отказался, хотя явно там фанатики были. Тащили до конца, но не вышло.

    Можно ссылки, что за проекты?

     
     
  • 6.158, Витюшка (?), 11:19, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Я выше в соседней ветке подробно ответил.

    https://way-cooler.org/blog/2019/04/29/rewriting-way-cooler-in-c.html

    Помню больше, конечно, но найти не смогу.

     
     
  • 7.174, Аноним (1), 12:55, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так уже 24 год на дворе, раст 5 лет назад был не тот, что сейчас. Мне бы хотелось линк сего года.
     
     
  • 8.180, Аноним (162), 13:20, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Типичное когнитивное искажение, когда человек ищет по ключевым словам подтвержде... текст свёрнут, показать
     
  • 2.23, Анонимусс (?), 21:09, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > от небольшой

    Ахаха! Серьезно??
    Посмотри сколько дыреней из-за проблема с памятью! Просто открой CVE лист для любого большого си проекта и там сплошные use-after-free или запись за пределы буфера.
    А статический анализ тебе поможет только в самых примитивных случаях.
    Как хорошо, что решения, касающиеся ядра, принимают профи.

     
     
  • 3.56, Витюшка (?), 22:49, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Серьёзно. Потому что С++ это не С. И Rust взял очень многое напрямую из C++. Например, модель памяти и move семантику (она немного другая в Rust, более слабая, но из С++).

    Те в целом получается +- что на Rust, что на C++ одинаково.

     
     
  • 4.60, Аноним (129), 22:55, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Сразу видно человека, не писавшего на расте.
     
     
  • 5.64, Витюшка (?), 23:05, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Жду раз...б по фактам.
     
     
  • 6.75, Аноним (129), 23:37, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Откройте багтрек любой крупной программы на С или С++, либо новости об очередных учзвимостях. В топе ошибок - ошибки работы с памятью. Также 100% уверен, что проекты на С или С++ ловили в проде падения, из-за обращений к нулевым указателям. Не только С и С++, но и все где есть null. Пока в принципе есть такая возможность стрелять в себе в ноги, это будут делать, даже самые топовые разработчики.
     
     
  • 7.132, Витюшка (?), 01:48, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Я открыл крупный проект на Rust.

    А что это у нас тут такое по тегу safety?

    https://github.com/servo/servo/issues/25726
    https://github.com/servo/servo/issues/19870

    Что это тут у нас? 😨 Гонки данных???

    https://github.com/servo/servo/issues/21186

    Так Rust же не позволяет гонки данных в compile time???

     
     
  • 8.134, Аноним (129), 01:55, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    где там - использование памяти после free - забыли освободить память - паденич... текст свёрнут, показать
     
     
  • 9.142, Витюшка (?), 02:29, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Use after free открытый с 2018 года https github com servo servo issues 21459 ... текст свёрнут, показать
     
     
  • 10.168, Аноним (162), 11:56, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Вы тупо гуглите по ключевым словам без понимания сути issue ... текст свёрнут, показать
     
  • 10.181, Советский инженер (ok), 13:28, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    This testcase is crashing during the final GC when the JSContext is being destro... текст свёрнут, показать
     
     
  • 11.189, Аноним (162), 15:37, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Там по трейсу видно что корень проблемы идет в c , над которой уже идет обвязка... текст свёрнут, показать
     
  • 11.194, Витюшка (?), 16:51, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    То Раст безопасный, то теперь оказывается нет А какая разница что там внизу в... текст свёрнут, показать
     
     
  • 12.230, Аноним (230), 23:09, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так обвязка, несмотря на использование unsafe безопасна Она запаниковала в р... текст свёрнут, показать
     
  • 12.250, Аноним (-), 21:51, 31/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Витюшка, ты опять не в состоянии в доку заглянуть и прочитать в каких случаях Ра... большой текст свёрнут, показать
     
  • 11.199, C00l_ni66a (ok), 17:02, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    То есть безопастный использует нибищапащные либы на клятi сикрестах Не может... текст свёрнут, показать
     
     
  • 12.231, Аноним (230), 23:12, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    И в чем противоречие использовать обвязки к либам на плюсах В rust unsafe очень... текст свёрнут, показать
     
     
  • 13.246, C00l_ni66a (ok), 21:34, 31/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    В том, что бищапащность в безопастном мгновенно исчезает, как только ты линкуешь... текст свёрнут, показать
     
     
  • 14.248, Аноним (-), 21:43, 31/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Работаешь с любой сторонней не-раст либой как с unsafe Просто потому что ты не ... текст свёрнут, показать
     
     
  • 15.252, C00l_ni66a (ok), 21:59, 31/12/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У тебя краткосрочная память только три буквы вмещает Используешь нибищапащную ф... текст свёрнут, показать
     
  • 14.249, Аноним (-), 21:43, 31/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Сразу видно спеца При линковке с любой либой из дыряшки ты можешь получить чуж... большой текст свёрнут, показать
     
     
  • 15.253, C00l_ni66a (ok), 22:02, 31/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Причём тут сишка Согласен, а растовики должны прекратить его пропагандировать ... текст свёрнут, показать
     
     
  • 16.255, Аноним (-), 23:01, 31/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Хм а кто это знамениты Григорий, чтобы все указывать Может он великий пограм... большой текст свёрнут, показать
     
     
  • 17.271, C00l_ni66a (ok), 00:09, 03/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Таблетки прими, а то уже совсем безсвязную ересь пишешь Это твоя прерогатива, к... большой текст свёрнут, показать
     
  • 7.254, anonymous (??), 22:45, 31/12/2023 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 6.83, Аноним (-), 23:49, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Опыт гугла подойдет?
    security.googleblog.com/2021/04/rust-in-android-platform.html
    Расскахывают и про проблемы с/с++, и про сложности санитайзеров

    Результат через год
    security.googleblog.com/2022/12/memory-safe-languages-in-android-13.html
    Android 13 is the first Android release where a majority of new code added to the release is in a memory safe language.

    Большую часть нового кода пишут не на с++, а на расте

     
     
  • 7.90, Аноним (85), 23:54, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    РебятаБ не ведитесь на тролля. Он вам сейчас заведет свою старую шарманку о том, что в Расте нет безопасной работы с памятью, и вообще все его пользователи - некомпетентные дураки, не раскусившие заговор.
     
     
  • 8.99, Анонин (?), 00:03, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Подождите, это же тот зиганутый, который в двух темах рассказывал про то какой р... текст свёрнут, показать
     
  • 8.133, Витюшка (?), 01:51, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ты лучше ответь выше про гонки данных Их же в Rust нет благодаря borrow checker... текст свёрнут, показать
     
  • 4.72, Анонимусс (?), 23:30, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> для любого большого си проекта
    > Потому что С++ это не С.

    Прям Капитан Очевидность пожаловал. И? При чем тут с++?
    В ядре его нету. И не будет.

     
     
  • 5.104, Аноним (100), 00:08, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Будет Rust в ядре - будет и С++. Иначе будет неинклюзивно, а это нарушение CoC.md
     
     
  • 6.115, Анонимусс (?), 00:43, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Раст в ядре с версии 6.1. Сейчас версия 6.7-rc7.
    Ну и где там С++?
     
  • 2.35, Аноним (85), 21:51, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Глупо изучать новый сырой язык со сложным синтаксисом только ради защиты от небольшой части ошибок, связанных с неправильным управлением памятью

    Господи, в каждой новости о Rust начинается один и тот же цирк, снова и снова... Вам не надоело еще?

     
     
  • 3.38, Анонимусс (?), 22:08, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Конечно им не надоело! Они одни и те же ошибки повторяют уже лет 30-40.
     
     
  • 4.51, Аноним (129), 22:46, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вы про use after free и разыменовывание нулевого указателя?)
     
     
  • 5.63, Анонимусс (?), 23:04, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А как же выход за пределы буфера?? Тут целое созвездие стандартных проблем.

    Вот прям из последнего
    https://www.opennet.ru/opennews/art.shtml?num=60326 - запись за пределы выделенного буфера (2 шт.)
    https://www.opennet.ru/opennews/art.shtml?num=60338 - use-after-free, double-free
    https://www.opennet.ru/opennews/art.shtml?num=60361 - Use after free

     
     
  • 6.81, Аноним (100), 23:45, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    А могли бы просто проверить статическим анализато... постой, да они же так и сделали, ахахаха!
     
  • 6.116, Аноним (129), 01:11, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Если за пару десятилетий люди так и не научились писать без таких ошибок, значит никогда не научатся и это by design своцство языка.
     
     
  • 7.151, Аноним (147), 08:12, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Если за пару десятилетий люди так и не научились писать без таких ошибок, то им и Раст не поможет, только запрет на профдеятельность.
     
     
  • 8.169, Аноним (162), 11:58, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Значит закрываем программирование, потому что такие ошибки были и периодически п... текст свёрнут, показать
     
  • 3.187, Аноним (187), 14:17, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ща закон примут и все мигом начнут писать без ошибок. А пока всё "AS IS", никакие безопасТные языки от тотальной безоТвеТсТвенносТи в профессии не помогут.
     
  • 2.184, Аноним (184), 14:00, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Проще воспользоватся инструментами вроде cppcheck или другими статическими анализаторами

    Гугл утверждает что это (и не только это) слабо помогает их андоидовским (и не только) си/плюсовым проектам. А вот задействование раста взамен си/плюсов в новых системных компонентах помогает просто ошеломительно:

    https://security.googleblog.com/2022/12/memory-safe-languages-in-android-13.ht

    В этом вопросе я больше гуглу поверю, чем тебе.

     
     
  • 3.243, Аноним (243), 17:58, 31/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Просто никто про эти инструменты еще не знает. Ни GOOGLE, ни kernel.org, ни MICROSOFT. Если им сообщить, то ошибки в их проектах перестанут появляться.
     

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

  • 1.21, Аноним (25), 21:04, 29/12/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > При работе с голыми указателями ("*const T" и "*mut T") могут потребоваться операции добавления смещения к указателю.

    лет через 10 до С дорастёт по удобству работы с памятью

     
     
  • 2.24, Анонин (?), 21:10, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Удобство работы с памятью в си - это "куда хочу, туда и пишу".
    Проблема что очень часто пишут мимо))
     
     
  • 3.26, Аноним (25), 21:20, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Проблема что очень часто пишут мимо

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

     
     
  • 4.53, Аноним (129), 22:48, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Опыт дебага утечек памяти, или used after free или разуменовывание нулевого указателя вспоминается как страшный сон, брр..
     
     
  • 5.61, Анонин (?), 22:57, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну, от утечек памяти раст не защищает и не гарантирует их отсутствие. Прямо в доке так написано.

    А вообще не знаю языка, который бы гарантировал их отсутствие. Даже хаскель периодически течет.
    Возможно что-то с формальной верификацией, но это очень специфические вещи.

     
     
  • 6.118, Аноним (129), 01:15, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Да, я больше про использование памяти после освобождения,  либо же забыть освободить память и получить утечку. Это прям регулярная проблема в софте на С и С++. Языки со сборкой мусора или моделью как в rust доказывают, что такая проблема реальная и что она достаточно большая,  чтобы ее решали люди и другие люди с удовольствием пользовались.
     
  • 2.27, Аноним (16), 21:23, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В стандарте С17 будут подвижки с безопасностью, а пока для критичных проектов есть MISRA, например. В последние годы подняли такой шум с ней, что можно подумать остальные языки программирования будут сидеть ничего не делая. В С++ сейчас безопасность памяти это одна из основных задач над которой трудятся.
     
     
  • 3.28, Аноним (12), 21:31, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > В стандарте С17 будут подвижки с безопасностью

    Напомните, какой сейчас год?)
    Сколько лет уходит, чтобы стандарт попал в ядро?
    В каком году в ядре начали использовать С11 вместо уже окаменевшего C99?

    > критичных проектов

    Есть Ада Спарк.
    Мисра тоже неплоха, но запрет на динамические аллокации сильно сужает применимость.

     
     
  • 4.32, Аноним (16), 21:41, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    В ядре начали использовать С11 в 2012 году, полную поддержку обеспечили конечно позже, учитывая размеры проекта не вижу тут ничего ненормального. SPARK конечно хорошо для своих задач, повзволяет формально верифицировать ПО. Удивлен что приложения для блокчейна пишут не на нем, а на разгильдяйском Solidity.
     
     
  • 5.34, Аноним (12), 21:49, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ядро перешло на с11 в 2022 году. Попробуем оценить в каком перейдут на c17, если сейчас практически 2024. Я думаю где-то 2029-2030.

    > Удивлен что приложения для блокчейна пишут не на нем,

    Думаю потому что слишком дорого.
    А блокчейн много на чем пишут, в том числе и на расте.

     
     
  • 6.41, Аноним (39), 22:19, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Так это окончательно объявили. А если проблемы с управлением памятью настолько реальны, как нас убеждают, то внедрение механизмов безопасности могут форсировать и скорее всего форсируют. Даже самые отъявленые фанаты Раста признают, что переписать ядро на Расте просто нереально, ни к 2030, ни к 2050. А блокчейн много где и на С++ пишут, немало видел на Java, бывало и на Котлине, там зоопарк огого.
     
     
  • 7.44, Аноним (12), 22:29, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Так все ядро никто даже и не собирается переписывать. Как раз самые отъявленные фанаты это понимают)
    Но переписать самые проблемные части, начать писать новый функционал, начать писать драйвера, чтобы одна паршивая овца не роняла всю систему - это вполне реальное развитие событий.
     
     
  • 8.48, Аноним (39), 22:41, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так эту проблему в целом довольно надуманную и решает введение нового станд... текст свёрнут, показать
     
     
  • 9.58, Аноним (12), 22:51, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Проблема не надуманная Как ни откроешь новость про CVE в ядре - то там почти вс... текст свёрнут, показать
     
     
  • 10.65, Аноним (39), 23:12, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Как нет, только что же обсуждали Какая избирательная память Ой сколько я мо... текст свёрнут, показать
     
     
  • 11.78, Аноним (12), 23:39, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Накидать ты то можешь, не сомневаюсь А вот какие из них реально что-то гарантир... текст свёрнут, показать
     
     
  • 12.84, Аноним (100), 23:49, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Лол, да ты только потому знаешь об этих багах что их как раз выявили и пофиксили... текст свёрнут, показать
     
     
  • 13.89, Аноним (12), 23:54, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    1 Пруфы в студию Ну, что именно эти баги были найдены именно санитайзерами 2 ... текст свёрнут, показать
     
  • 13.94, Анонин (?), 23:59, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Вот хороший пример https www opennet ru opennews art shtml num 59906 Уязвимос... текст свёрнут, показать
     
     
  • 14.106, Аноним (100), 00:10, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Вот также будут и в 2050 находить ошибки в немногочисленных легаси проектах на R... текст свёрнут, показать
     
     
  • 15.110, Анонин (?), 00:16, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Будут находить именно use-after-free, buffer-overrun и тд ... текст свёрнут, показать
     
     
  • 16.114, Аноним (100), 00:40, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А что, баги в программах перечисленными категориями исчерпываются ... текст свёрнут, показать
     
     
  • 17.125, Анонин (?), 01:27, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Нет конечно Но тут кто-то считал, что для CVE - 70 проблемы с памятью И в это... текст свёрнут, показать
     
  • 7.130, Аноним (129), 01:43, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Проблемы с управлением памятью есть, это подтверждает наличие языков со сборкой мусора, которые появились очень давно. Не было бы проблемы с управлением памятью,  никто бы не создавал такие языки и они бы не были популярными.
     
  • 4.188, Аноним (188), 14:36, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >В каком году в ядре начали использовать С11 вместо уже окаменевшего C99?

    Такого события не было - C11 начали использовать вместо окаменевшего C89.

     
     
  • 5.216, Аноним (10), 18:09, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >вместо окаменевшего C89

    for (int i=0; .... вроде бы, уже очень давно можно было писать.

     
  • 3.37, Аноним (25), 21:59, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > есть MISRA, например

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

     
     
  • 4.42, Аноним (39), 22:23, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Платный стандарт, а он и для С внезапно платный (чистовик), и ГОСТы на практике и много еще чего.
    PVS-Studio вроде предлагал бесплатную лицензию на один год для проектов с открытым исходным кодом. Наверняка есть и другие пути для некоммерческого проекта, а коммерческие пусть платят.
     
     
  • 5.54, Аноним (25), 22:48, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Платный стандарт, а он и для С внезапно платный (чистовик)

    поддержка различных стандартов С и С++ в gcc есть а мисры я там не наблюдаю

    > PVS-Studio вроде предлагал бесплатную лицензию

    это внешний анализатор, так можно и Frama-C ещё вспомнить, только много кто этим пользуется ? Rust удобен тем что весь анализ кода в одном открытом бесплатном компиляторе.

     
     
  • 6.73, Аноним (39), 23:31, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так внешнего анализатора и достаточно чтобы получить грубо говоря 90% преимуществ Раста и еще выловить баги которые и Раст никак не помогает предотвратить. И главное для этого не нужно менять свой основной язык, что для многих означает потерю работы.

    Уже есть коммерческие решения для MISRA, свободные как обычно будут с задержкой, в GCC процесс идет. Пока что можно пользоватся бесплатной версией PVS-Studio и аддоном MISRA для CppCheck. Глупо считать что Раст предлагает в этом что-то уникальное или новое.

     
     
  • 7.96, фнон (?), 00:00, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Интересная цифра А можно, хотя бы примерно, методику ее расчета Пока похоже на... большой текст свёрнут, показать
     
     
  • 8.111, Аноним (100), 00:17, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ты сначала посмотри на количество вакансий для разработчиков на Rust, а потом ра... текст свёрнут, показать
     
     
  • 9.123, Анонимусс (?), 01:25, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Количество вакансий просто убийственный аргумент А ведь JSников и пыхеров еще... текст свёрнут, показать
     
  • 7.109, Аноним (25), 00:14, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Уже есть коммерческие решения для MISRA

    соблюдение правил мисры не даёт никаких гарантий а гигантское ядро по ним написать шансов ноль

    > Глупо считать что Раст предлагает в этом что-то уникальное или новое

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

     
     
  • 8.112, Аноним (100), 00:23, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Раст дает гарантии только по ограниченному классу ошибок, остальные лови ручками... текст свёрнут, показать
     
     
  • 9.190, Аноним (184), 15:47, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    только этот ограниченный класс составляет 70 ошибок, причем многие из них - кри... текст свёрнут, показать
     

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

  • 1.46, Аноним (39), 22:36, 29/12/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Не очень понятно, зачем нужен недописаный Hermit, когда есть уже готовые стабильные проекты IncludeOS, Nanos, наконец Unikraft.
     
     
  • 2.197, fyjy (?), 16:59, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что опенсорс - это про NIH, велосипедостроение и 'фигня какая-то, я точно лучше сделаю'.
    Так всегда было, независимо от языков программирования.
     
     
  • 3.229, _ (??), 23:06, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Как будто что то плохое ...
     
     
  • 4.278, Аноним (278), 21:03, 05/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Смотря откуда взглянуть Если с позиции Васяна - то да, плодишь себе стотыщпицот... большой текст свёрнут, показать
     
  • 2.283, Пряник (?), 10:16, 09/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Конкуренция-с. Как было с VHS, дискетами, дисками, хардами, интерфейсами...
     

  • 1.70, Аноним (70), 23:20, 29/12/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Оказывается, здесь столько системных программистов, которых так заботит безопасность обращения к памяти на нулевом уровне ядра! Куда же делись прикладные программисты, которым ехать, а не шашечки?
     
     
  • 2.80, Аноним (80), 23:45, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Прикладники ничего не знают про эти "вещи в себе". Вот например:

    > всю необходимую функциональность, не привязываясь к ядру ОС и системным библиотекам

    А как это чудо взаимодействует с железом?
    Как отправляет пакеты в сеть?
    Как записывает на диск?
    Как рисует на мониторе?

    Чует моё сердце, что создали очередной "виртуально-абстрактный гипервизор в контейнере" не имеющий никакого прикладного применения и рады до ушей.

     
     
  • 3.135, Витюшка (?), 01:58, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Операционная система и есть библиотека. А исполняться оно должно в виртуальной машине на виртуальном процессоре, считай аналог голого железа. А не в контейнере.
     
  • 2.82, Анонин (?), 23:45, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > которым ехать, а не шашечки

    Это те, которым говняк-говняк и в прод? Да куча их, посмотри выше по ветке))

     
  • 2.91, Аноним (91), 23:56, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Почему-то под ехать ваша братия всю дорогу понимает недоязычки с нулевой гибкостью, "нюансы" которых нужно специально "изучать" (вместо изучения теории категорий, например), чтобы программа работала корректно.
     
  • 2.120, Аноним (129), 01:20, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Я тут. Помимо безопасной работы с памятью без сборщика мусора, там есть еще много удобных zero-cost абстракций и нет проблем с нулевыми указателями, которые регулярно всплыывют и на c++, и в go и в питоне и в jvm языках и в других. Также модель, по которой происходит работа с памятью прекрасно работает и с другими ресурсами, как параллельность или же забыть освободить какой-то mutex.
     
     
  • 3.137, Витюшка (?), 02:09, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Отлично! Я тебя нашёл. Да что там освобождение мьютекса!

    Давай хотя бы сначала попробуем написать мьютекс безопасный на Rust!

    Есть код мьютекса (спинлока). Естественно это суперкритичный к качеству и надёжности код. Естественно написан на Rust.

    Докажи, пожалуйста, с помощью Rust (который безопасный по памяти и гонкам данных!) что этот код:
    1. Действительно даёт mutual exclusion доступ к критической секции (т.е. работает корректно)
    2. Является deadlock-free
    3. Является starvation-free

     
     
  • 4.160, Аноним (12), 11:27, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Напиши такой мьютекс на "безопасном" зиге. Он же лучше и безопаснее раста, правда ведь?)
    Давай, ты же такой крутой погромист. Ну и нас повеселишь заодно.
     
     
  • 5.195, Витюшка (?), 16:52, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Так я и написал
     
     
  • 6.202, fyjy (?), 17:11, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Так я и написал

    Так я тоже написал! Супер мьютекс на раст, но код я показать не могу - он секретный по заказу марсиан.
    Может ты свой покажешь)?
    А то балаболить и фантазировать все умеют

     
  • 4.167, фнон (?), 11:55, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Пук в лужу конечно знатный, но как троллинг унылый.

    Ты лучше скажи так:
    "Вот пример deadlock-free и starvation-free мьютекса, написанный на языке N, для которого это все доказано! Он используется в проекте М и дает ему непревзойденную надежность.
    Сможете так же на Раст сделать? "

    А то пока это теоретическое балабольство, зато на умную книжку сослался (ты ее вообще читал?)

     
     
  • 5.198, Витюшка (?), 17:01, 30/12/2023 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 6.205, Аноним (-), 17:16, 30/12/2023 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 7.210, Витюшка (?), 17:53, 30/12/2023 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 8.211, Аноним (211), 17:59, 30/12/2023 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 8.215, Аноним (12), 18:02, 30/12/2023 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 4.176, Аноним (162), 13:00, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Я так понимаю, все преимущества, такие как безопасность работы с памятью, zero c... большой текст свёрнут, показать
     
     
  • 5.206, Витюшка (?), 17:18, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ясно, как обычно. Когда дело доходит до конкретного вопроса или просьбы написать 20 строк кода... программисты на Раст либо съезжают с темы, либо начинают разглагольствовать про "сводите к одному вопросу".

    А написать 20 строк безопасного кода на Раст не могут. В принципе это всё что нужно знать про Раст, его безопасность и программистов его проповедующих.

    Готов написать на Zig, ты на Раст. Я доказываю корректность кода на листочке, потому что по-другому не умею и не знаю как, ты доказываешь корректность (20 строк кода!) с помощью гарантий Раст - borrow checker, владение, типы... в общем извращайся как хочешь. Но с помощью самого компилятора.

    По рукам? Или как всегда...

     
     
  • 6.212, Аноним (211), 18:00, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А давай!
    Кидай сюда свой зигокод, а я кину на раст.
     
     
  • 7.218, Витюшка (?), 19:48, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Наконец-то первый программист на Rust, осиливший 20 строк кода. Уважаю 💪

    Сейчас до компьютера дойду.

    Будем писать очень простой, но корректный, мьютекс для двух статичных потоков - алгоритм Питерсона (Peterson lock).

    Доказательство корректности моего кода - практически напрямую следует из доказательства в книге The Art Multiprocessing programming.

    Я буду ждать доказательства на Rust на borrow checker.

    То что ты сможешь написать 20 строк кода я не сомневаюсь.

     
     
  • 8.240, OpenEcho (?), 02:50, 31/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Если вы не будете друг друга прикалывать, то из этого может что то получиться, ч... текст свёрнут, показать
     
  • 7.239, OpenEcho (?), 02:47, 31/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > А давай!
    > Кидай сюда свой зигокод, а я кину на раст.

    А вы мужики молодцы! (без прикола)
    К шоу готов: 🍿🍿🍿

     
  • 7.241, Витюшка (?), 10:29, 31/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Мой вариант.
    https://gist.github.com/likern/9df0d97b3551236b456716d95f282f83

    Жду твоего :)

     
     
  • 8.244, Аноним (12), 18:47, 31/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    https github com k-walter rads blob main src sync peterson rs ... текст свёрнут, показать
     
     
  • 9.256, Витюшка (?), 00:36, 01/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не знал что под личиной русского парня скрывался K Walter ... текст свёрнут, показать
     
     
  • 10.257, Аноним (-), 02:40, 01/01/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 10.258, Аноним (-), 12:37, 01/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Т е именно по коду тебе сказать не нечего Не то чтобы я был сильно этому удивл... текст свёрнут, показать
     
     
  • 11.259, Витюшка (?), 18:52, 01/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А что я должен должен сказать по коду Куча синтаксического шума и никаких гаран... текст свёрнут, показать
     
     
  • 12.262, Аноним (-), 22:51, 01/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Что должен Должен проверить код Что можешь А ничего ты не можешь, ты же не ум... большой текст свёрнут, показать
     
     
  • 13.265, Витюшка (?), 23:28, 01/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В общем по существу ответить нечего Вывод спора простой Большинство программис... большой текст свёрнут, показать
     
     
  • 14.268, Аноним (-), 01:35, 02/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Т е ты слился Я не особо удивлен Я тебе предоставил чужой рабочий код на Раст,... большой текст свёрнут, показать
     
     
  • 15.270, Витюшка (?), 02:26, 02/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну у вас с логикой всё печально Я говорю давай напишем код и проверим у кого ... большой текст свёрнут, показать
     
  • 11.260, Витюшка (?), 19:05, 01/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В этом и фишка, ни одного unsafe и язык является абсолютно небезопасным И в это... текст свёрнут, показать
     
     
  • 12.264, Аноним (-), 23:26, 01/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не любую А ту ошибку, отсутствие которой не гарантируется safe подмножеством Н... большой текст свёрнут, показать
     
     
  • 13.266, Витюшка (?), 00:37, 02/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну и как же ты не в runtime отловишь выход за границы массива Очень хочу послуш... большой текст свёрнут, показать
     
     
  • 14.267, Аноним (-), 01:21, 02/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ты вообще за дискуссией следишь Ты спросил про Си Вот ты сам придумал что они ... большой текст свёрнут, показать
     
     
  • 15.269, Витюшка (?), 02:11, 02/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Про героическое додумывание - это лучше к зеркалу подойти При чём тут вообще С ... большой текст свёрнут, показать
     
  • 2.232, _ (??), 23:13, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >Куда же делись прикладные программисты, которым ехать, а не шашечки?

    Прикладные уже давно не пишут на С.
    На С++ не так давно - но тоже редкость.
    На расте писать они не будут тоже, это уже видно.

    Иди ко ты в топик где обсуждают Java, JS\TS, Python и прочую жесть.

     
     
  • 3.285, wyry (?), 05:07, 11/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Штааа? xD. Всего лишь почти все ПО по производству 3D графики написано на C++. В Blender есть и более низкоуровневый Сишный код. Unreal Engine 5 (давно не пишут xD...) написан на C++. Почти все видеоредакторы написаны на C++. Почти весь САПР - это C++. MATLAB - это C (чистый) + Java морда. Или для вас "прикладное ПО" - это для секретарей и кассиров? Так и там, особенно при отказе от винды можно запросто увидеть C++, помимо Java.
     

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

  • 1.74, Аноним (74), 23:36, 29/12/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Какой же мерзкий синтаксис. Пока что самый адекватный синтаксис у конпиляемых "системных" языков - это Ada.
     
     
  • 2.87, Аноним (91), 23:52, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    (Мысли вслух) Где же вас таких обучают, в каком ПТУ? Почему вам синтаксис дороже семантики?
     
     
  • 3.92, Аноним (100), 23:56, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    А почему нужно обязательно налажать или в одном, или в другом? Почему бы и то, и другое не сделать нормально?
     
     
  • 4.95, Аноним (91), 23:59, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что "нормально" не бывает. Синтаксис это на 90% вкусовщина. Это как выбирать компьютер по цвету системного блока. Блондиночный критерий. Синтаксис можно легко переделать (и языки с гибкой семантикой дают для этого лёгкую методу), а семантику без переписывания самого языка не переделать при всём желании.
     
     
  • 5.101, Аноним (74), 00:05, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Синтаксис это на 90% вкусовщина.

    Всё что нужно знать о современных "IT специалистах" 👆

     
     
  • 6.221, JB (??), 20:43, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Мне кажется, вы поспешили обозвать его специалистом.
     
  • 5.107, Аноним (74), 00:12, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Это как выбирать компьютер по цвету системного блока.

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

     
     
  • 6.108, Аноним (74), 00:13, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    П.с. если что, это был sarcasm ‼
     
     
  • 7.113, Аноним (100), 00:26, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Думал сарказм, а оказалось правдой. У растоманов так бывает.
     
  • 5.173, Аноним (-), 12:38, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Кто не понял, поясню синтаксис - это грубо говоря набор "Literal" или "слов". Чем их количество меньше и сами слова интуитивно понятны, тем читабельность лучше. А семантика должна придавать набору ключевых слов и имён переменных общий логический смысл. И этот общий смысл слов необязательно может быть быстро понят программистом, который переходит на другой язык программирования.

    >Синтаксис это на 90% вкусовщина.

    Согласен. Но давайте вглянем на Раст глазами чистосишника. Раст обладает развитым синтаксисом, что само по себе подразумевает мощный семантический аппарат. И всё это нагромождение "Literal" воспринимается как "наркоманский синтаксис". Если Раст учит человек никогда не программировавший, то восприятие "наркоманского синтаксиса" не будет.

     
     
  • 6.275, Янис (?), 20:06, 03/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Каким еще таким развитым синтаксисом обладает растишка?! У чистого Си все куда яснее.
     
  • 5.277, Аноним (278), 20:54, 05/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Синтаксис это на 90% вкусовщина

    ДАЛЕКО НЕ. Именно в силу синтаксиса ЛИСП (или какой-нть Брэйнфак с Перлом) канули в лету, а ПОЧТИ похожий на Си Паскакаль не выдержал битвы и... тоже забыт большинством.

    Синтаксис - это не следование капризам очередного з@дp0та (как ты себе представляешь), это выверяемый годами удобный способ представления программы, ибо их не только пишут, но и ЧИТАЮТ.

     
  • 2.88, Аноним (100), 23:53, 29/12/2023 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Я что-то после новостей про Паскаль по нему заностальгировал. Конечно, по нынешним меркам он многословный и фигурные скобки привычнее, но все же насколько по-человечески выглядит код! И да, Ада очень близка к нему, к тому же по-настоящему безопасна.
     
     
  • 3.103, Аноним (74), 00:08, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ada, в отличии от паскаля, может в многопоточность и асинхронность. Хотя, вроде, в fpc что-то такое есть, но оно очень сырое и не_стандартизированное.
     
     
  • 4.220, _ (??), 19:51, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    fpc - сам себе стандарт. В стандартном Pascal даже классов нет.

    И кстати он (fpc) - неплох. К нему даже Lazarus сделали :)

     
  • 2.121, Аноним (129), 01:22, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А что конкретно не так с ним? Как такие же абстракции более лаконично и понятно описывать?

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

     
     
  • 3.149, Аноним (147), 08:05, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ага, программист должен иметь минимум три года опыта разработки на Rust чтобы оценивать качество его синтаксиса.
     
     
  • 4.154, Аноним (223), 10:26, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не обязательно три. Только когда начнёшь осознавать концепции и почему так сделано. Если хочется больше сахара - можно намазать макросов. Тут просто многие синтаксические вещи сделаны по-другому. И практика показывает, что плюсы начинают пытаться это повторять потому что так удобнее (типа явного self)
     
     
  • 5.203, C00l_ni66a (ok), 17:13, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Если хочется больше сахара - можно намазать макросов.

    У растовиков и без "сахара" - сплошной коричневый слой макросов по проектам всегда размазан. Плата за отрицательную выразительность.

     
  • 4.177, Аноним (162), 13:01, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Достаточно осилить rustbook, который большинство критиков синтаксиса даже не открывали дальле первой странички, чтобы большинство вопросов к синтаксису отпало
     
  • 2.284, Пряник (?), 10:26, 09/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Синтаксис намного удобнее и понятнее, чем в С/С++, а больше и не нужно. Хотя немного более многословный. Преобразование через as_, макросы без прострела ноги (когда узнал про косяки макросов в Си, это фейспалм, обязательно всё в скобки, сразу вспомнил баш с кавычками).
     

  • 1.152, Аноним (147), 08:22, 30/12/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Больше всего радует, что на волне всего этого хайпа вокруг memory safety наконец-то начали шевелится разработчики C и C++. Глядишь, наконец-то ограничат возможность прострелить себе ногу хотя бы в дефолтном окружении.
     
     
  • 2.153, An (??), 09:32, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А что за "шевеления"? Особенно в контексте C интересно.
     
     
  • 3.159, Витюшка (?), 11:23, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Есть proposal чтобы добавить defer. Те какие-то попытки есть.
     
     
  • 4.161, фнон (?), 11:34, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Коммитет обсудит это лет 3-5,
    потом добавят в стандарт,
    через 10-15 лет попадет в ядро
     
  • 4.166, Анонин (?), 11:46, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Этот proposal маринутеся еще с 2020 года (https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2542.pdf)
    В конце 2021 вышла вторая его версия https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2895.htm

    И если бы его таки добавали, то в C23... в который он уже не попал))) И в следующий тоже.
    Так что пока нет никаких предпосылок к его принятию.

    Вообще на уровне ядра могли бы свой самописный defer сделать. Или сделать на уровне GNU C Extensions.

     
     
  • 5.179, Аноним (10), 13:17, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Или сделать на уровне GNU C Extensions.

    На уровне GNU Extensions можно много чего добавить. Например, MISRA можно было бы, -fmisra. Сразу все требования, понимаю, трудновато реализовать, но можно постепенно добавлять.

     
  • 5.222, Аноним (25), 21:05, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > на уровне ядра могли бы свой самописный defer сделать

    в ядре есть автоматическое управление ресурсами устройств

    https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/Document

     

  • 1.170, Аноним (-), 12:09, 30/12/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >Применение "-C codegen-units=1" при сборке Android позволило снизить размер инструментария на 5.5% и увеличить его производительность на 1.8%, при этом время сборки самого инструментария увеличилось почти в два раза.

    Размер меньше, а время сборки медленей.

    >были применены оптимизации при помощи утилиты BOLT, которые позволили довести прирост скорости сборки до 24.7%, но размер инструментария при этом вырос на 10.9%.

    Размер чуть больше, а время сборки быстрее.

    Хм ... не, я лучше посижу на чистой сишке.

     
     
  • 2.186, fyjy (?), 14:16, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Звучит логично.
    Или программа использует меньше памяти, или работает быстрее.
    Обычная задачка на оптимизацию алгоритмов.

    Было бы интересно услышать "гуру чистой сишки", как реализовать одновременно "быстрее и меньше памяти"

     
     
  • 3.242, Аноним (242), 15:45, 31/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    скомпилировать с -O3
     
     
  • 4.251, Аноним (-), 21:55, 31/12/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    А потом долго и судорожно ищешь куда бы поставить барьер, чтобы порядок выполнения был таким как ты написал, а не как захотелось компилятору.
     
     
  • 5.273, Аноним (273), 01:55, 03/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну если тебе квалификации не хватает, тогда компилируй с -O2
     
  • 3.280, Аноним (280), 23:37, 08/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А тем временем российские физики написали эмулятор 34 кубитного квантового компьютера именно на Rust... "Гуру" тем временем в чатиках важными холиварами были заняты
     
     
  • 4.281, Аноним (-), 00:31, 09/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > А тем временем российские физики написали эмулятор 34 кубитного квантового компьютера именно
    > на Rust... "Гуру" тем временем в чатиках важными холиварами были заняты

    Он так же работает как аппарат на луне, робот федор и модуль наука?
    Или даже лучше?

     
  • 2.226, Аноним (226), 21:56, 30/12/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >были применены оптимизации при помощи утилиты BOLT

    И тут же рядом фанатики Раста пишут, что у них все утилиты в одном компиляторе в отличии от ненавистной им Сишки. Сравнивать они естественно будут с output ванильного компилятора Си, без сторонних оптимизаций.

     

  • 1.282, Пряник (?), 10:10, 09/01/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Генераторы бы... с ними параллелизм в hello world будет по феншую.
     

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



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

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