Профиль: Аноним (вход | регистрация) неRU opennet.me  
The OpenNET Project / Index page

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



"Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитывающего 53 млн загрузок за 3 месяца"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитывающего 53 млн загрузок за 3 месяца"  +/
Сообщение от opennews (??), 20-Авг-26, 23:38 
Опубликован релиз языка программирования  Rust 1.98, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки)...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=66108

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +10 +/
Сообщение от Аноним (1), 20-Авг-26, 23:38 
зато нету use-after-free
Ответить | Правка | Наверх | Cообщить модератору

5. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –2 +/
Сообщение от сиськаemail (?), 21-Авг-26, 00:02 
проектировался язык чтоб избежать подобного, но вот компрометация пакетов, лол, отнюдь, да и сборка превышающая время жизни вообще ни в какие ворота, уж извините, да и IDE полноценной не имеет, ещё минусы нужны?
Ответить | Правка | Наверх | Cообщить модератору

6. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +2 +/
Сообщение от Нонон (?), 21-Авг-26, 00:12 
Я как разработчик раст, не понимаю что значит «IDE полноценной не имеет»
Пока что сижу на RustRover. Коллеги по цеху в VsCode и Cursor на расте пишут. Жду пока Zed допилят, может на него перейду. Все 1 в 1 как и в других ЯП
Ответить | Правка | Наверх | Cообщить модератору

23. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –13 +/
Сообщение от Аноним (23), 21-Авг-26, 01:14 
Сравнивать текстовый редактор на плагинах с полноценной IDE? Видать и разработчик такой же.
Ответить | Правка | Наверх | Cообщить модератору

26. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –3 +/
Сообщение от Аноним (26), 21-Авг-26, 01:20 
какой?
Ответить | Правка | Наверх | Cообщить модератору

71. Скрыто модератором  +1 +/
Сообщение от ыых (?), 21-Авг-26, 07:12 
Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору

78. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +3 +/
Сообщение от anonymos (?), 21-Авг-26, 09:02 
Стесняюсь спросить, а в чем кардинальное отличие?
Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору

106. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от МИСАКА (?), 21-Авг-26, 12:01 
И что есть такого в этой твоей "полноценной" IDE, чего нет в блокнотах с плагинами?
Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору

166. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +3 +/
Сообщение от Аноним (166), 21-Авг-26, 17:51 
Как это что? Прибитие к конкретным версиям плагинов, из-за чего пользователь IDE не может поставить последнюю версию плагина с нужной функцией или исправлением. Ему приходится ждать и поэтому он люто ненавидит пользователей блокнотов с плагинами где этой проблемы нет.
Ответить | Правка | Наверх | Cообщить модератору

182. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Анонисссм (?), 21-Авг-26, 20:59 
>И что есть такого в этой твоей "полноценной" IDE, чего нет в блокнотах с плагинами?

ну посмотри intellij idea уже.

А между полноценной IDE и блокнотами ещё есть неполноценные (netbeans, eclipse - в которые закопаны миллионы челочасов).

Представь как далёк путь от этих ваших зэдов до idea?

Ответить | Правка | К родителю #106 | Наверх | Cообщить модератору

205. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Прохожий (??), 22-Авг-26, 13:18 
Я работал с netbeans. Принципиально разницы между netbeans и vs code с расширениями в упор на вижу. Ну, кроме того, что для vs code нужна первоначальная настройка.
Ответить | Правка | Наверх | Cообщить модератору

259. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Анонисссм (?), 25-Авг-26, 15:57 
> Я работал с netbeans.

прекрасно, осталось теперь поработать в полноценной IDE и выкинуть всё перечисленное раз и навсегда

Ответить | Правка | Наверх | Cообщить модератору

108. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +3 +/
Сообщение от xPhoenix (ok), 21-Авг-26, 12:03 
Это у вас просто нормального конфига Emacs не было.
Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору

129. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +2 +/
Сообщение от Аноним (129), 21-Авг-26, 14:06 
так любая "полноценная IDE" это и есть "текстовый редактор на плагинах". Вопрос только в количестве и качестве плагинов.
Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору

81. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +2 +/
Сообщение от Аноним (81), 21-Авг-26, 09:23 
Zed не допилят, он как был быстрым текстовым редактором - так и останется. Там про IDE не пилят НИ ЧЕ ГО. Обёртка над ИИчками
Ответить | Правка | К родителю #6 | Наверх | Cообщить модератору

206. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Прохожий (??), 22-Авг-26, 13:20 
В смысле ничего? Там встроенный lsp есть, да и расширения тоже. Не так много, как для VS Code, но для типовых задач вполне достаточно.
Ответить | Правка | Наверх | Cообщить модератору

25. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +5 +/
Сообщение от Норм (?), 21-Авг-26, 01:19 
Расскажите как проэктировать ЯП чтобы избегать компроментации пакетов.
Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

69. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от koni dohnut (?), 21-Авг-26, 06:21 
выбросить use
Ответить | Правка | Наверх | Cообщить модератору

70. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (70), 21-Авг-26, 06:52 
> Расскажите как проэктировать ЯП чтобы избегать компроментации пакетов

Ты правда проектируешь ЯП?

Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

124. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +4 +/
Сообщение от Норм (?), 21-Авг-26, 13:27 
Каждый день на опеннете проэктирую яп и читаю других экспертов по проэктировпнию яп как правильно не создавать пакетники в яп.
Ответить | Правка | Наверх | Cообщить модератору

103. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Аноним (103), 21-Авг-26, 11:41 
Не создавать централизованный репозиторий пакетов (crates.io, pypi, npm и так далее)
Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

123. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –2 +/
Сообщение от Норм (?), 21-Авг-26, 13:22 
В языке раст - нет пакетника.
Ответить | Правка | Наверх | Cообщить модератору

169. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +2 +/
Сообщение от Аноним (169), 21-Авг-26, 18:47 
https://doc.rust-lang.org/cargo/
Ответить | Правка | Наверх | Cообщить модератору

194. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Норм (?), 22-Авг-26, 00:00 
Карго - система сборки, а не язык.
Ответить | Правка | Наверх | Cообщить модератору

199. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +2 +/
Сообщение от Выкабанак (?), 22-Авг-26, 02:05 
Карго - культ, а не система сборки
Ответить | Правка | Наверх | Cообщить модератору

203. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +3 +/
Сообщение от Аноним (103), 22-Авг-26, 11:42 
> В языке раст - нет пакетника
> Cargo is the Rust package manager

Ладно (c) Жак Фреско

Ответить | Правка | К родителю #194 | Наверх | Cообщить модератору

209. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Норм (?), 22-Авг-26, 14:48 
>> В языке раст - нет пакетника
>> Cargo is the Rust package manager
> Ладно (c) Жак Фреско

Растом называется несколько разных вещей.
А в данном случае банальное незнание английского с вашей стороны.

Ответить | Правка | Наверх | Cообщить модератору

210. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (103), 22-Авг-26, 15:02 
Если под "языком раст" подразумевался не язык программирования Rust (а что тогда, ржавчина?)... как-то сложно даже понять смысл ваших слов
Ответить | Правка | Наверх | Cообщить модератору

220. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –2 +/
Сообщение от Норм (?), 22-Авг-26, 21:58 
> Если под "языком раст" подразумевался не язык программирования Rust (а что тогда,
> ржавчина?)... как-то сложно даже понять смысл ваших слов

Карго в языке раст - нет.
Карго - система сбоки и управляния пакетами разработанная для языка раст.

Раст - это язык, инфраструктура, юридическая сущность, имя сайта.

Ответить | Правка | Наверх | Cообщить модератору

153. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (153), 21-Авг-26, 16:54 
Как находить и распространять библиотеки предлагаете?
Ответить | Правка | К родителю #103 | Наверх | Cообщить модератору

179. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Аноним (179), 21-Авг-26, 20:54 
По сарафанному радио.
Ответить | Правка | Наверх | Cообщить модератору

195. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Норм (?), 22-Авг-26, 00:01 
Слухами земля полнится 🤌
Скачать без смс соржфорже длл архив бесплатно.
Ответить | Правка | К родителю #153 | Наверх | Cообщить модератору

181. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Пакет (?), 21-Авг-26, 20:59 
>пакете proc-macro1 вредоносное изменение присутствовало в сборочном скрипте и осуществляло загрузку исполняемого файла с внешнего сервера

Что вообще скрипты делают в пакете, почему у них есть доступ к интернету?

Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

197. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Норм (?), 22-Авг-26, 00:21 
В системе сборки скрипт.
Нужно оно для разных самых задач. Ну например встроить содержимое файла в бинарник.
Или protobuf скомпилить.

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

Ответить | Правка | Наверх | Cообщить модератору

186. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Аноним (186), 21-Авг-26, 21:21 
Go позволяет добавлять пакеты с любого URL, и по-умолчанию не предлагает скачать с централизованного источника.

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

Nix вообще в песочнице собирает пакеты, а сама малварь не запустится из-за отсутствующего libc :-)

Ну а Python вообще не умеет в пакеты без костыля в виде pip.

Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

207. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Прохожий (??), 22-Авг-26, 13:25 
>с любого URL

То, что в любом URL может быть зловредный код, "эксперт" не подумал, конечно же.

Ответить | Правка | Наверх | Cообщить модератору

59. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +3 +/
Сообщение от px (??), 21-Авг-26, 03:42 
Мне хватает emacs + соответствующий мод + lsp / чувствую себя прекрасно
Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

218. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Ерфений Никодимович (?), 22-Авг-26, 17:04 
На Rust пишут (серьёзные люди) традиционно в Neovim. Там вся экосистема есть. Вы публично признаёте свою несведомость.
Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

221. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от bOOster (ok), 22-Авг-26, 22:47 
Ты откуда? лет 10 сиську не видал :)
Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

34. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –2 +/
Сообщение от Сладкая булочка (?), 21-Авг-26, 01:51 
>  зато нету use-after-free

Цитаты великих^Wхакнутых пользователей

Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

120. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (120), 21-Авг-26, 13:18 
Зато есть ...

> С сопровождающим arrayref пока не удалось связаться

Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

200. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от анонимс (?), 22-Авг-26, 08:12 
Есть. Поинтересуйтесь cve-rs
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

201. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (201), 22-Авг-26, 11:23 
> Есть. Поинтересуйтесь cve-rs

Неа, поинтересуйся cve-rs чуть дальше заголовка.


Ответить | Правка | Наверх | Cообщить модератору

240. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Markx (?), 23-Авг-26, 22:21 
Обнули указатель после освобождения памяти, а перед использование проверяй на 0/null и все, ради этого стоит отдельный язык пилить?
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

2. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –2 +/
Сообщение от Аноним (2), 20-Авг-26, 23:49 
И что заразили, какие-нибудь файрфокс с хромиумом, судя по перечню? Это то, что вы получаете, скачивая из помойки.
Ответить | Правка | Наверх | Cообщить модератору

3. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +12 +/
Сообщение от Аноним (3), 20-Авг-26, 23:49 
>Компрометация пакета arrayref, насчитывающего 53 млн загрузок за 3 месяца

Ничему жизнь людей не учит… мало им npm?

Ответить | Правка | Наверх | Cообщить модератору

18. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +5 +/
Сообщение от Аноним (18), 21-Авг-26, 00:57 
Будем рады услышать твои решения проблемы dependency chain.
Ответить | Правка | Наверх | Cообщить модератору

38. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +6 +/
Сообщение от Аноним (38), 21-Авг-26, 02:03 
Не тащить в дом лефтпады всякие - вот и всё решение. Ну если тащишь, то проверенное и очень аккуратно с фиксацией версии. Риски остаются, но по сравнению с ежедневным npm install они гораздо меньше.
Ответить | Правка | Наверх | Cообщить модератору

90. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Смузихеб забывший пароль (?), 21-Авг-26, 10:05 
> Не тащить в дом лефтпады всякие

Там вообще другая ситуация была. А именно, что владелец пакета мог его просто выпилить( Но теперь не может)
Как фиксация версий поможет тебе в случае если самого пакета с некоторых пор в принципе не существует ?

Ответить | Правка | Наверх | Cообщить модератору

49. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +2 +/
Сообщение от Пример (?), 21-Авг-26, 02:32 
No nested dependencies - no problems.
Ответить | Правка | К родителю #18 | Наверх | Cообщить модератору

155. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (153), 21-Авг-26, 16:56 
Давайте сразу писать весь код с нуля для каждого блокнота. Начиная с ОС, а то не дай бог зависимости угнездятся.
Ответить | Правка | Наверх | Cообщить модератору

193. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Bottle (?), 21-Авг-26, 22:34 
Неиронично давайте, потому что идиллии вида "все пользуются одними и теми же библиотеками, и всё работает хорошо" не наступило, а вот качество ПО заметно упало, в том числе из-за удешевления разработки.
Ответить | Правка | Наверх | Cообщить модератору

54. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +11 +/
Сообщение от Грузовой самолет (?), 21-Авг-26, 03:03 
Эта проблема в общем виде не решается совсем. Можно только радикально минимизировать поверхность атаки, но культ cargo наоборот ее только расширяет
Ответить | Правка | К родителю #18 | Наверх | Cообщить модератору

102. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +2 +/
Сообщение от Аноним9000 (?), 21-Авг-26, 11:23 
Ограничивать свежесть пакетов где-то на уровне 3-7 дней. В cargo, правда, пока есть только в ночных сборках или через сторонние решения
https://github.com/rust-lang/cargo/pull/17012
Ответить | Правка | К родителю #18 | Наверх | Cообщить модератору

4. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +3 +/
Сообщение от DEF (?), 21-Авг-26, 00:01 
А где новости про Bun 1.4?
Ответить | Правка | Наверх | Cообщить модератору

79. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +3 +/
Сообщение от Жироватт (ok), 21-Авг-26, 09:17 
Смысл? Слопософт может бампать версию хоть раз в час, после мерджа слоповыхлопа от ЫЫ в мастер.
Ответить | Правка | Наверх | Cообщить модератору

158. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Аноним (153), 21-Авг-26, 16:57 
Ты всё ещё думаешь, что софт -- это про строчки кода? Боже, какая прелесть.
Ответить | Правка | Наверх | Cообщить модератору

7. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (7), 21-Авг-26, 00:24 
> Ценой применения алгебраических методов является недетерминированность результатов вычисления, которые могут меняться в пределах погрешности.

кто-нибудь, поясните это предложение, пожалуйста.

Ответить | Правка | Наверх | Cообщить модератору

9. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +4 +/
Сообщение от Аноним (18), 21-Авг-26, 00:44 
Какое слово не понятно? Обычный `a+b+c+d` на флотах это только `((a+b)+c)+d` и никак иначе, иногда это важно, потому что если складывать начиная с самых маленьких значений то погрешность будет меньше. А алгебраические операции могут скомпилироваться сегодня в (a+b)+(c+d), а завтра в (a+c)+(b+d), и всё это будет давать разные результаты в пределах погрешности. Когда погрешность не важна, можно это использовать ради увеличения скорости.
Ответить | Правка | Наверх | Cообщить модератору

22. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +2 +/
Сообщение от Круз (?), 21-Авг-26, 01:06 
т.е порядок a + b + c + d у ржавых точно определен а a.algebraic_add(b).algebraic_add(c).algebraic_add(d) внезапно исполняется в в произвольном порядке?
а потом удивляются почему их сумасшедшими считают
Ответить | Правка | Наверх | Cообщить модератору

27. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +2 +/
Сообщение от Норм (?), 21-Авг-26, 01:22 
Кринж. Капец.
Ответить | Правка | Наверх | Cообщить модератору

29. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Аноним (18), 21-Авг-26, 01:32 
> т.е порядок a + b + c + d у ржавых точно определен а a.algebraic_add(b).algebraic_add(c).algebraic_add(d) внезапно исполняется в в произвольном порядке?

Да, а в чём проблема, слишком сложно для понимания? Если что, a + b + c + d это a.add(b).add(c).add(d), поэтому эти операции на уровне языка работают совершенно одинаково, просто во втором случае в llvm едет флажок разрешающий их переупорядочивать. В C такое было испокон веков, только включалось через -ffast-math на уровне программы или в лучшем случае единицы трансляции, что суть бред, по г-едов устраивало. А тут сделано идеально - можно использовать точечно, явно, только там где нужно.

Ответить | Правка | К родителю #22 | Наверх | Cообщить модератору

86. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +2 +/
Сообщение от Sm0ke85 (ok), 21-Авг-26, 09:42 
>А тут сделано идеально - можно использовать точечно, явно, только там где нужно

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

Ответить | Правка | Наверх | Cообщить модератору

100. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Hexen (ok), 21-Авг-26, 11:03 
На самом деле это нужно для большенства случаев, а сохранение порядка операций, и запрет на оптимизацю участка кода нужен как раз в точечных случаях.
Ответить | Правка | Наверх | Cообщить модератору

130. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (130), 21-Авг-26, 14:17 
Ну, например, потому что оптимальность точечного ручного порядка не переносима. А так конечно же потому что можно руками не писать.
Ответить | Правка | К родителю #86 | Наверх | Cообщить модератору

165. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Совершенно другой аноним (?), 21-Авг-26, 17:45 
> В C такое было испокон веков, только включалось через -ffast-math на уровне программы или в лучшем случае единицы трансляции, что суть бред, по г-едов устраивало.

#pragma GCC optimize("fast-math")

Ответить | Правка | К родителю #29 | Наверх | Cообщить модератору

28. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (7), 21-Авг-26, 01:29 
> Обычный 'a+b+c+d' на флотах это только '((a+b)+c)+d' и никак иначе, иногда это важно, потому что если складывать начиная с самых маленьких значений то погрешность будет меньше.

а размер регистров разве не фиксирован? Маленькие значения не "дополняются" нулями? С фига обычное сложение флоатов создает погрешность при смене порядка применения операции? Они бы еще написали бы, что a+b и b+a приводит к погрешности. А  вот что такое "недетерминированность результатов" я вообще не понял, это типа случайный результат?

Ответить | Правка | К родителю #9 | Наверх | Cообщить модератору

30. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +3 +/
Сообщение от Аноним (18), 21-Авг-26, 01:36 
> а размер регистров разве не фиксирован? Маленькие значения не "дополняются" нулями? С фига обычное сложение флоатов создает погрешность при смене порядка применения операции?

Если ты такие вопросы задаёшь, ты не понимаешь вообще как устроены fp числа и как работает fpu. Почитай википедию хотя бы.

> А  вот что такое "недетерминированность результатов" я вообще не понял, это типа случайный результат?

А это в словаре посмотри. Это значит что в зависимости от платформы, компилятора, версии компилятора, а может и запуска программы результат вычисления может отличаться.

Ответить | Правка | Наверх | Cообщить модератору

33. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –6 +/
Сообщение от Аноним (7), 21-Авг-26, 01:48 
> Если ты такие вопросы задаёшь, ты не понимаешь вообще как устроены fp числа и как работает fpu. Почитай википедию хотя бы.

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

0,3 + 0,33 + 0,3333 + 0,33333 = 1,29663
(0,3 + 0,33) + (0,3333 + 0,33333) = 1,29663

> это в словаре посмотри. Это значит что в зависимости от платформы, компилятора, версии компилятора, а может и запуска программы результат вычисления может отличаться.

Недетерминированный - это случайный, то есть результат получения нельзя описать по шагам!

А тут шаги есть, это операция сложения, и результат именно этой конструкции (0,3 + 0,33) + (0,3333 + 0,33333) всегда будет одинаковый при каждом исполнении, но в тоже время отличаться от результата 0,3 + 0,33 + 0,3333 + 0,33333 этой конструкции. Это никак нельзя назвать недетерминированным результатом.

Ответить | Правка | Наверх | Cообщить модератору

41. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (18), 21-Авг-26, 02:08 
> Недетерминированный - это случайный, то есть результат получения нельзя описать по шагам!

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

Ответить | Правка | Наверх | Cообщить модератору

47. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Аноним (7), 21-Авг-26, 02:24 
> Нет, недетерминированный - это недетерминированный.

:) серьезно?

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

именно что результат a + b + c + d всегда один и тот же, как и результат (a + b) + (c + d) даже не с математической точки зрения, а потому-что сама операция сложения детерминирована, коммутативна и ассоциативна!

Ответить | Правка | Наверх | Cообщить модератору

58. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от warlock66613email (ok), 21-Авг-26, 03:06 
Сложение чисел с плавающей точкой коммутативно, но неассоциативно.
Ответить | Правка | Наверх | Cообщить модератору

61. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –2 +/
Сообщение от Аноним (7), 21-Авг-26, 04:05 
> Сложение чисел с плавающей точкой коммутативно, но неассоциативно.

с какого бодуна? с того что ваш цпу это свойство нарушает не делает операцию сложения вещественных чисел не ассоциативной!

Ответить | Правка | Наверх | Cообщить модератору

62. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +7 +/
Сообщение от warlock66613email (ok), 21-Авг-26, 04:42 
А я про вещественные числа ничего не говорил. Речь о числах с плавающей точкой. У них совсем иная математическая природа. Числа с плавающей точкой — это конечное подмножество рациональных чисел. Оно не является ни полем, ни кольцом, ни даже квазигруппой. Математически оно связано с так называемой интервальной арифметикой.
Ответить | Правка | Наверх | Cообщить модератору

116. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (7), 21-Авг-26, 12:47 
> А я про вещественные числа ничего не говорил. Речь о числах с плавающей точкой. У них совсем иная математическая природа.

Перевод нужен?

"""
In computing, floating-point arithmetic (FP) is arithmetic on subsets of real numbers formed by a significand (a signed sequence of a fixed number of digits in some base) multiplied by an integer power of that base. Numbers of this form are called floating-point numbers.

Floating-point arithmetic operations, such as addition and division, approximate the corresponding real number arithmetic operations by rounding any result that is not a floating-point number itself to a nearby floating-point number. For example, in a floating-point arithmetic with five base-ten digits, the sum 12.345 + 1.0001 = 13.3451 might be rounded to 13.345.
"""

> Математически оно связано с так называемой интервальной арифметикой.

IEEE Std 754-2019 - 10. Expression evaluation

К прочтению

Ответить | Правка | Наверх | Cообщить модератору

125. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от warlock66613email (ok), 21-Авг-26, 13:36 
Вы про то, что написано, что оно подмножество вещественных чисел? Так и есть: раз оно подмножество рациональных чисел, а рациональные числа подмножество вещественных, то автоматически множество чисел с плавающей точкой есть подмножество вещественных. (На самом деле не совсем: есть NaN, бесконечности, отрицательный ноль. Но это мелочи. Хотя они становятся не-мелочами когда речь заходит от упорядочивании.)

Но это всё касается только теоретико-множественной структуры! Алгебра (она же арифметика) у чисел с плавающей точкой совсем другая, и ни в каком смысле подалгеброй вещественных чисел не является. Сложение чисел с плавающей точкой -- это не сложение вещественных чисел. Умножение чисел с плавающей точкой -- это не умножение вещественных чисел. Это отдельные, самостоятельные операции замкнутые в множестве чисел с плавающей точкой. И свойства у них поэтому со свойствами операций над вещественными числами не совпадают. И важно это понимать когда код с ними пишешь.

Мостик между вещественными числами и числами с плавающей точкой прокинуть можно. Но он совсем не прямой. Упомянутая интервальная арифметика -- это такой мостик и есть.

Ответить | Правка | Наверх | Cообщить модератору

128. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –2 +/
Сообщение от Аноним (7), 21-Авг-26, 14:04 
> раз оно подмножество рациональных чисел

не путайте rational и real!

Арифметика чисел Floating-point это приближенная арифметика вещественных чисел с округлением результата. То есть сохраняется аксиоматика вещественных чисел!!!

"""
Floating-point arithmetic operations, such as addition and division, approximate the corresponding real number arithmetic operations by rounding any result that is not a floating-point number itself to a nearby floating-point number.
"""

//ru.wikipedia.org/wiki/Вещественное_число

Раздел "Аксиоматика вещественных чисел"

> Алгебра (она же арифметика) у чисел с плавающей точкой совсем другая, и ни в каком смысле подалгеброй вещественных чисел не является. Сложение чисел с плавающей точкой -- это не сложение вещественных чисел.

Сам стандарт IEEE Std 754-2019 Standard for Floating-Point Arithmetic вам не диктует как надо складывать. Прочтите раздел 10. Expression evaluation.

> И свойства у них поэтому со свойствами операций над вещественными числами не совпадают. И важно это понимать когда код с ними пишешь.

Ну где описано как надо правильно складывать Floating-point числа?

> Мостик между вещественными числами и числами с плавающей точкой прокинуть можно. Но он совсем не прямой. Упомянутая интервальная арифметика -- это такой мостик и есть.

//en.wikipedia.org/wiki/Floating-point_arithmetic

Раздел "Alternatives to floating-point numbers"

А интервальная арифметика немного другая и стандарт IEEE 1788.

//en.wikipedia.org/wiki/Interval_arithmetic

Хочу заметить, что англ версии ни слова про свойства. А вот в русской версии

//ru.wikipedia.org/wiki/Интервальная_арифметика

в Разделе "Свойства операций" четко написано:

"""
Сложение и умножение интервалов коммутативны и ассоциативны. Но вместо полноценной дистрибутивности умножения по сложению имеет место так называемая субдистрибутивность.
"""

Ответить | Правка | Наверх | Cообщить модератору

137. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от warlock66613email (ok), 21-Авг-26, 14:31 
Нет, аксиоматика вещественных чисел не сохраняется. В аксиоматике вещественных чисел речь идёт об операциях, определённых на вещественных числах. Эти операции не замкнуты на числах с плавающей точкой, поэтому их нельзя просто сузить на требуемое подмножество и назвать операциями на числах с плавающей точкой. Поэтому для чисел с плавающей точкой вводятся свои, другие операции и для этих операций не выполняются свойства операций над вещественными числами.

А вот для рациональных чисел как раз всё иначе: сложение, умножение, вычитание, деление рациональных чисел -- это сложение, умножение, вычитание и деление вещественных чисел, суженное на подмножество рациональных. Поэтому путать rational и real можно и ничего страшного не случится. А вот путать их с числами с плавающей точкой нельзя.

IEEE 1788 -- это оно. А вот в википедии не оно, это другая интервальная арифметика.

Ответить | Правка | К родителю #128 | Наверх | Cообщить модератору

138. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (7), 21-Авг-26, 14:34 
> Поэтому путать rational и real можно и ничего страшного не случится. А вот путать их с числами с плавающей точкой нельзя

ясно, продолжайте путать, "числами с плавающей точкой" - это формат представления!

> IEEE 1788 -- это оно. А вот в википедии не оно, это другая интервальная арифметика.

по ссылке пройдитесь!

Ответить | Правка | К родителю #137 | Наверх | Cообщить модератору

143. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (7), 21-Авг-26, 14:55 
//ru.wikipedia.org/wiki/Аксиоматика_Тарского_(вещественные_числа)

И тут ассоциативность с коммутативностью в одной аксиоме.

Ответить | Правка | К родителю #137 | Наверх | Cообщить модератору

148. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Аноним (7), 21-Авг-26, 15:40 
Ответ альтернативно-одаренному 14.141, freehck (ok), 14:42, 21/08/2026, который оставляет коментарий анонимам и закрывает отвечать анонимам.

> Эти операции не замкнуты на числах с плавающей точкой, поэтому их нельзя просто сузить на требуемое подмножество и назвать операциями на числах с плавающей точкой.

IEEE Std 754-2019 Standard for Floating-Point Arithmetic

"""
3.2 Specification levels
3.2.0 Floating-point arithmetic is a systematic approximation of real arithmetic, as illustrated in Table 3.1.

Floating-point arithmetic can only represent a finite subset of the continuum of real numbers.

Consequently certain properties of real arithmetic, such as associativity of addition, do not always hold for floating-point arithmetic.
"""

Вам нужен перевод? Черным по белому "finite subset of the continuum of real numbers".

А тут "Consequently certain properties of real arithmetic, such as associativity of addition, do not always hold for floating-point arithmetic." - акцент "do not always hold" - в переводе на русский - "НЕ ВСЕГДА сохраняет", то есть, ассоциативность как свойство есть, но НЕ ВСЕГДА сохраняется из-за чего? А это уже другой вопрос! И на что это влияет и как с этим "борются".

> а именно — конечным подмножеством рациональных чисел, да ещё и без ассоциативности  

Чушь, "can only represent a finite subset of the continuum of real numbers"!!!

> Поэтому путать rational и real можно и ничего страшного не случится.

Продолжайте путать, корзина и яблоки одинаково съедобны!

> А вот путать их с числами с плавающей точкой нельзя.

Нету таких чисел, это формат представления вещественных чисел!!!

> IEEE 1788 -- это оно. А вот в википедии не оно, это другая интервальная арифметика.

Боты походу по ссылкам не ходят!!!

Ответить | Правка | К родителю #137 | Наверх | Cообщить модератору

170. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от freehck (ok), 21-Авг-26, 19:51 
> Floating-point arithmetic can only represent a finite subset of the continuum of real numbers.
> Consequently certain properties of real arithmetic, such as associativity of addition, do not always hold for floating-point arithmetic.

Я не знаю, что к этому можно добавить.

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

Смотреть на то, как Вы цитируете подтверждение наших с warlock-ом слов, но в качестве "опровержения" — это и смешно, и грустно одновременно.

Ответить | Правка | К родителю #148 | Наверх | Cообщить модератору

172. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Аноним (7), 21-Авг-26, 20:14 
Ответ альтернативно-одаренному 16.170, freehck (ok), 19:51, 21/08/2026

>> Floating-point arithmetic can only represent a finite subset of the continuum of real numbers.
>> Consequently certain properties of real arithmetic, such as associativity of addition, do not always hold for floating-point arithmetic.
> Я не знаю, что к этому можно добавить.

Что добавить? Вы серьезно?

Ваше утверждение: "Да ещё и со сложением БЕЗ ассоциативности"

А что говорит стандарт: "such as associativity of addition, DO NOT ALWAYS hold"

Вы считаете, что ваше утверждение эквивалентно (то же самое) утверждению в стандарте?

> Пожалуйста, сходите почитать, к примеру, "Алгебру" ван дер Вардена, ну хотя бы первые три главы.

Советовать вам что-либо читать уже не вижу смысла, воздержусь!

> Смотреть на то, как Вы цитируете подтверждение наших с warlock-ом слов, но в качестве "опровержения" — это и смешно, и грустно одновременно.

Вы и warlock делаете неверные утверждения, пример выше.

Всего хорошего!

Ответить | Правка | К родителю #148 | Наверх | Cообщить модератору

180. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от freehck (ok), 21-Авг-26, 20:59 
>>> Consequently certain properties of real arithmetic, such as associativity of addition, do not always hold for floating-point arithmetic.

"Следовательно конкретные свойства арифметики вещественных чисел, такие как ассоциативность сложения, не всегда применимы к арифметике чисел с плавающей точкой".

> Ваше утверждение: "Да ещё и со сложением БЕЗ ассоциативности"
> <...>
> Вы считаете, что ваше утверждение эквивалентно (то же самое) утверждению в стандарте?

Ну? =)

Ответить | Правка | К родителю #172 | Наверх | Cообщить модератору

184. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Аноним (7), 21-Авг-26, 21:17 
Ответ альтернативно-одаренному 17.180, freehck (ok), 20:59, 21/08/2026

>>> Consequently certain properties of real arithmetic, such as associativity of addition, do not always hold for floating-point arithmetic.
> "Следовательно конкретные свойства арифметики вещественных чисел, такие как ассоциативность сложения, не всегда применимы к арифметике чисел с плавающей точкой".

Вам даже русский чужд, свойства не применяются, свойствами обладают, отсюда "do not always hold" - дословно НЕ ВСЕГДА СОХРАНЯЕТСЯ (ОБЛАДАЕТ). А про разницу "не всегда сохраняет" (свойство обладает в некоторых случаях или же на оборот, не обладает в некоторых случаях) и "всегда не сохраняет" (вообще не обладает свойством) - промолчу.

> Ну? =)

всего хорошего

Ответить | Правка | К родителю #148 | Наверх | Cообщить модератору

187. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от freehck (ok), 21-Авг-26, 21:35 
О, я наконец понял, почему он так упорно не понимает элементарных вещей! =)

> НЕ ВСЕГДА СОХРАНЯЕТСЯ (ОБЛАДАЕТ)

Конечно нет! =)

Операция ⚬, определённая на множестве S, ассоциативна, если выполняется (x⚬y)⚬z = x⚬(y⚬z), ДЛЯ ВСЕХ x,y,z из S (https://en.wikipedia.org/wiki/Associative_property#Definition)

В процитированном Вами фрагменте написано "не всегда сохраняется". Это значит, что "для всех" x,y,z равенство не выполняется. А раз "для всех" не выполняется, значит ассоциативности нет. Теперь понимаете? Из процитированного Вами фрагмента прямо следует, что Вы не правы. =)

Не правы просто потому, что для доказательства отсутствия ассоциативности достаточно просто привести пример, где она не соблюдается для данной операции на рассматриваемом множестве. И Вам в данном конкретном треде это продемонстрировали уже ВСЕ. И все умыли руки от того, что Вам их объяснений оказалось недостаточно: просто потому, что НИКОМУ до сих пор не пришло в голову, что вы банально НЕ ЗНАЕТЕ ОПРЕДЕЛЕНИЯ ассоциативности.

Поэтому, ещё раз. "Алгебра", ван дер Варден. Читать.

Ответить | Правка | К родителю #184 | Наверх | Cообщить модератору

189. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Аноним (7), 21-Авг-26, 21:57 
Ответ альтернативно-одаренному 17.187, freehck (ok), 21:35, 21/08/2026

> Конечно нет. =)
> https://en.wikipedia.org/wiki/Associative_property#Definition
> "Операция ⚬, определённая на множестве S, ассоциативна, если выполняется (x⚬y)⚬z = x⚬(y⚬z), ДЛЯ ВСЕХ x,y,z из S"
> Пожалуйста, почитайте ван дер Вардена.

В стандарте написано же "do not always hold" не для всех x,y,z из S, это не отменяет того, что операция сложения Floating-Point вообще не ассоциативна. Такого утверждения в стандарте нет! А если следовать строгому определению, тогда можно сказать, что ваша операция сложения Floating-Point вовсе не операция сложения вещественных чисел, а х3р пойми что, ибо операция сложения вещественных чисел должна обладать свойством ассоциативности, а свойствами обычно обладают все элементы множества!

Ответить | Правка | К родителю #148 | Наверх | Cообщить модератору

191. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +2 +/
Сообщение от freehck (ok), 21-Авг-26, 22:10 
> А если следовать строгому определению, тогда можно сказать, что ваша операция сложения Floating-Point вовсе не операция сложения вещественных чисел, а х3р пойми что, ибо операция сложения вещественных чисел должна обладать свойством ассоциативности, а свойствами обычно обладают все элементы множества!

Именно! Так оно, блин, и есть! =)
Всё, я пожалуй тоже пойду. Всего хорошего. =)

Ответить | Правка | К родителю #189 | Наверх | Cообщить модератору

190. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (7), 21-Авг-26, 22:08 
Ответ альтернативно-одаренному 17.187, freehck (ok), 21:35, 21/08/2026

> просто потому, что НИКОМУ до сих пор не пришло в голову, что вы банально НЕ ЗНАЕТЕ ОПРЕДЕЛЕНИЯ ассоциативности.

вы адресом ошиблись, это авторам IEEE Std 754-2019 Standard for Floating-Point Arithmetic адресуйте.

В стандарте четко прописано "не всегда сохраняет свойства" это их определение ассоциативности для Floating-Point!

В аксиоматике же вещественных чисел должна всегда сохранять, то есть операция сложения  на множестве вещественных чисел всегда сохраняет свойство ассоциативности для всех элементов.

И тут резонный вопрос, с какого это бодуна операция сложения на подмножестве (коим является Floating-Point) множества вещественных чисел, не сохраняет для всех элементов свойство ассоциативности? Значить эту операцию нельзя назвать операцией сложения!!!

Ответить | Правка | К родителю #148 | Наверх | Cообщить модератору

192. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от freehck (ok), 21-Авг-26, 22:20 
Ну, поскольку Вы написали второе сообщение до того, как я таки ушёл, всё же прокомментирую вот это:

> И тут резонный вопрос, с какого это бодуна операция сложения на подмножестве (коим является Floating-Point) множества вещественных чисел, не сохраняет для всех элементов свойство ассоциативности? Значить эту операцию нельзя назвать операцией сложения!!!

Это — ОЧЕНЬ ХОРОШИЙ и ПРАВИЛЬНЫЙ вопрос. Я очень рад, что Вы наконец на верном пути. Ответ на него Вы найдёте в том же самом томике "Алгебры" ван дер Вардена, который я Вам рекомендую к прочтению вот уже которое сообщение. Также, после его прочтения Вы ещё и поймёте наконец, почему авторы IEEE Std 754-2019 на самом деле не ошибаются. =)

Ответить | Правка | К родителю #190 | Наверх | Cообщить модератору

198. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Аноним (7), 22-Авг-26, 00:52 
Ответ альтернативно-одаренному 17.192, freehck (ok), 22:20, 21/08/2026

> Также, после его прочтения Вы ещё и поймёте наконец, почему авторы IEEE Std 754-2019 на самом деле не ошибаются. =)

Перечитайте коментарии, и продолжайте складывать вещественные числа в любом порядке согласно  стандарту IEEE Std 754-2019.

Ответить | Правка | К родителю #190 | Наверх | Cообщить модератору

141. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от freehck (ok), 21-Авг-26, 14:42 
>> раз оно подмножество рациональных чисел
> не путайте rational и real!

Он и не путает. Настоящих вещественных чисел, дорогой, нигде в транзисторных компьютерах нет и быть не может — хотя бы по той простой причине, что множество вещественных чисел континуально, а процессор дискретен. Поэтому компьютеры наши оперируют числами с плавающей точкой, которые именно тем и являются, что товарищ Warlock написал — конечным подмножеством рациональных чисел. Да ещё и со сложением без ассоциативности (не кольцо и не поле), да ещё и не квазигруппой (из-за NaN и Inf).

> То есть сохраняется аксиоматика вещественных чисел!!!

Нет, не сохраняется. Тебе ж уже написали, что сложение не ассоциативно. Почему, понять не трудно:

% perl -e 'for $n (1e-14, 1e-15, 1e-16, 1e-17) { print "$n + 1 = 1 ?   ", $n+1==1 ? "True" : "False", "\n" }'
1e-14 + 1 = 1 ?   False
1e-15 + 1 = 1 ?   False
1e-16 + 1 = 1 ?   True
1e-17 + 1 = 1 ?   True

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

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

Ответить | Правка | К родителю #128 | Наверх | Cообщить модератору

171. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от freehck (ok), 21-Авг-26, 20:03 
> Числа с плавающей точкой — это конечное подмножество рациональных чисел. Оно не является ни полем, ни кольцом, ни даже квазигруппой.

И чтобы всех окончательно добить и запутать, добавлю: "числа с плавающей точкой" не являются "числами". Так-то! =)

Сорри, warlock, наверное не стоило, но сам видишь: люди не знают, как соотносятся друг с другом базовые числовые множества — ну как тут не начать прикалываться? )

Блин, какой небось фурор в комментариях произведёт старый и всем известный прикол с доказательством того, что сумма всех натуральных чисел равна -1/12? =)

Ответить | Правка | К родителю #62 | Наверх | Cообщить модератору

222. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от bOOster (ok), 22-Авг-26, 22:55 
Обратную польскую нотацию поработай с ней
Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

223. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (223), 23-Авг-26, 00:06 
ты в курсе для чего она применяется?
Ответить | Правка | Наверх | Cообщить модератору

225. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от bOOster (ok), 23-Авг-26, 01:10 
> ты в курсе для чего она применяется?

Походу ты нет...

Ответить | Правка | Наверх | Cообщить модератору

231. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (223), 23-Авг-26, 13:03 
ясно, походу ты еврейскую придумал... проходи давай
Ответить | Правка | Наверх | Cообщить модератору

51. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +2 +/
Сообщение от Аноним (51), 21-Авг-26, 02:48 
Ты вообще калькулятор виндовый дизассемблировал когда-нибудь и смотрел как он числа считает? Там символьная арифметика, он твой ввод рассматривает как массив символов для которых применяется вычисление "в столбик", как в школе. Поэтому точность не пропадает. А здесь речь про про операции в стандарте IEEE 754 (бинарное представление чисел с плавающей точкой), в котором арифметические операции неассоциативны из-за ограниченности разрядной сетки 4 или 8 байтами. Ошибка округления от сложения разных чисел будет разная. Поэтому и результат не детерминирован.
Ответить | Правка | К родителю #33 | Наверх | Cообщить модератору

57. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –9 +/
Сообщение от Аноним (7), 21-Авг-26, 03:06 
> Ты вообще калькулятор виндовый дизассемблировал когда-нибудь и смотрел как он числа считает? Там символьная арифметика, он твой ввод рассматривает как массив символов для которых применяется вычисление "в столбик", как в школе. Поэтому точность не пропадает.

а ты код на расте видел хоть раз? там разве не та же самая "символьная арифметика"? :)))

> А здесь речь про про операции в стандарте IEEE 754 (бинарное представление чисел с плавающей точкой), в котором арифметические операции неассоциативны из-за ограниченности разрядной сетки 4 или 8 байтами.

размер регистра влияет на арифметику и ее свойства? серьезно?


> Ошибка округления от сложения разных чисел будет разная.

Округляют обычно результат конечный!

> Поэтому и результат не детерминирован.

Толковый словарь открой!

Ответить | Правка | Наверх | Cообщить модератору

64. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +3 +/
Сообщение от Аноним (64), 21-Авг-26, 05:15 
Не позорься, сходи почитай про то, что такое числа с плавающей запятой в компуктере. Внезапно! (a+b)+c может быть НЕ равно a+(b+c). Да и это вообще никакого отношения к регистрами не имеет.
Ответить | Правка | Наверх | Cообщить модератору

117. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –2 +/
Сообщение от Аноним (7), 21-Авг-26, 12:55 
> Не позорься, сходи почитай

Вот пройдись и прочитай!

IEEE Std 754-2019 - 10. Expression evaluation

A language standard should also define, and require implementations to provide, attributes that allow and disallow value-changing optimizations, separately or collectively, for a block. These optimizations might include, but are not limited to:
― Applying the associative or distributive laws.
― Synthesis of a fusedMultiplyAdd operation from a multiplication and an addition.
― Synthesis of a formatOf operation from an operation and a conversion of the result of the
operation.
― Use of wider intermediate results in expression evaluation.
Programmers can allow these optimizations when the corresponding changes in numerical values or status flags are acceptable.

> Внезапно! (a+b)+c может быть НЕ равно a+(b+c). Да и это вообще никакого отношения к регистрами не имеет.

Вот оно что, если бы у меня были бы бесконечной длины регистры у меня (a+b)+c всегда было бы равно a+(b+c), потому-что в аксиоматике вещественных чисел сложение определено ассоциативным свойством.

//ru.wikipedia.org/wiki/Вещественное_число

раздел Аксиоматика вещественных чисел

Ответить | Правка | Наверх | Cообщить модератору

152. Скрыто модератором  +1 +/
Сообщение от Аноним (152), 21-Авг-26, 16:52 
Ответить | Правка | К родителю #33 | Наверх | Cообщить модератору

168. Скрыто модератором  +/
Сообщение от Аноним (7), 21-Авг-26, 18:01 
Ответить | Правка | Наверх | Cообщить модератору

10. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от aname (ok), 21-Авг-26, 00:45 
2+2 не всегда равно 4. Ну, в пределах погрешности
Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

16. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Аноним (16), 21-Авг-26, 00:55 
В определённых ситуациях значение может даже достигать 5
Ответить | Правка | Наверх | Cообщить модератору

32. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (18), 21-Авг-26, 01:43 
5 вряд-ли, но если складывать очень много очень мелких значений, в сумме дающих 4, то при вычислении на fpu результат может быть сильно меньше 4.
Ответить | Правка | Наверх | Cообщить модератору

36. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (7), 21-Авг-26, 01:56 
с какого? там сумма будет стремиться к 4, как она может быть "сильно меньше 4"?
3,9999999999999 сильно меньше 4.0000000000000?
Ответить | Правка | Наверх | Cообщить модератору

40. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Аноним (18), 21-Авг-26, 02:06 
Чем больше n, тем дальше сумма будет он 4. Сумма миллиарда одномиллиардных будет около 0.03125. Почему я тебе уже достаточно расписал.
Ответить | Правка | Наверх | Cообщить модератору

45. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (7), 21-Авг-26, 02:20 
ну пробуй 0.0000001 + 0.0000001 + 0.0000001 + 0.0000001 .... в какую сторону будет стремиться число?
Ответить | Правка | Наверх | Cообщить модератору

74. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +2 +/
Сообщение от Tron is Whistling (?), 21-Авг-26, 08:05 
Угу, я в своё время задолбался одноклеточным объяснять, почему в биллинге - только широкий fixed point.
Ответить | Правка | К родителю #40 | Наверх | Cообщить модератору

12. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Ivan_83 (ok), 21-Авг-26, 00:47 
Скорее всего там речь про float/double - штуки с плавучкой, там когда что то сильно дробное то оно округляется и при этом теряется точность.
Когда вы меняете порядок вычислений, будучи математически корректным, на практике это приводит к тому что операции округления будут происходить над другими значениями и погрешности округления тоже изменятся.
Думаю как то так.
Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

31. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (7), 21-Авг-26, 01:41 
> Скорее всего там речь про float/double - штуки с плавучкой, там когда что то сильно дробное то оно округляется и при этом теряется точность.

размеры регистров ведь фиксированы, я понимаю что 0.3 и 0.33333333333 разной точности и если рассмотреть

0.3 + 0.33 + 0.3333 + 0.33333 то порядок в какой-то степени будет играть роль, но ведь в регистре то они все равно фиксированной длины и 0.3 в регистре условно должно лежать как 0.300000000 ибо предыдущее число это 0.299999999, не так?

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

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

0,3 + 0,33 + 0,3333 + 0,33333 = 1,29663
(0,3 + 0,33) + (0,3333 + 0,33333) = 1,29663

> Думаю как то так.

Спасибо.

Ответить | Правка | Наверх | Cообщить модератору

39. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Аноним (18), 21-Авг-26, 02:04 
> 0.3 + 0.33 + 0.3333 + 0.33333 то порядок в какой-то степени будет играть роль, но ведь в регистре то они все равно фиксированной длины и 0.3 в регистре условно должно лежать как 0.300000000 ибо предыдущее число это 0.299999999, не так?

Почему не сходить посмотреть в википедию хотя бы? Факт раз - FPU работает с бинарными значениями, ни одно из упомянутых чисел в них точно не представимы. Соответственно, точно не представим результат. Соответственно, после каждой операции будет округление. Соответственно, результат будет разный в зависимости от порядка операций. Пример два - давай для простоты будем мыслить в десятичной системе, и пусть fpu хранит 3 знака после запятой.

1e0 + 1e-3 = 1.000 + 0.001 = 1.001 // всё ок
1e0 + 1e-4 = 1.000 + 0.0001 = 1.000_1 = 1.000 // потому что у нас всего 3 разряда
1e0 + 1e-4 + 1e-4 + 1e-4 + 1e-4 + 1e-4 + 1e-4 + 1e-4 + 1e-4 + 1e-4 + 1e-4 = 1.000 // всё равно, потому что округляем после каждой операции
но
1e0 + (1e-4 + 1e-4 + 1e-4 + 1e-4 + 1e-4 + 1e-4 + 1e-4 + 1e-4 + 1e-4 + 1e-4) = 1.001 // потому что мы сначала накопим 1e-3 ничего не потеряв, и оно уже влезет в младший разняд числа с большей экспонентой

> пихнул в виндовый калькулятор оба варианта

Мда.

Ответить | Правка | Наверх | Cообщить модератору

44. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Аноним (7), 21-Авг-26, 02:19 
> Почему не сходить посмотреть в википедию хотя бы?

потому-что регистр и ваша точность вычислений - фиксирована длиной (шириной) этого регистра.

> 1e0 + 1e-4 + 1e-4 + 1e-4 + 1e-4 + 1e-4 + 1e-4 + 1e-4 + 1e-4 + 1e-4 + 1e-4 = 1.000 // всё равно, потому что округляем после каждой операции
> но
> 1e0 + (1e-4 + 1e-4 + 1e-4 + 1e-4 + 1e-4 + 1e-4 + 1e-4 + 1e-4 + 1e-4 + 1e-4) = 1.001 // потому что мы сначала накопим 1e-3 ничего не потеряв, и оно уже влезет в младший разняд числа с большей экспонентой

wolfram в обоих случаях выдает результат 1.001

> Мда.

Чему вы удивляетесь? Тому что калькулятор выдает корректный математический результат?

Ответить | Правка | Наверх | Cообщить модератору

48. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +2 +/
Сообщение от Аноним (18), 21-Авг-26, 02:27 
А ничего что калькулятор, как и вольфрам, не на fpu могут работать, а на длинной, рациональной или символьной арифметике? Удивляюсь я дремучести и упрямству человека которому рассказывают почему именно так, а он спорит с фактами, не видит разницы между инструментами работающими на совершенно разных принципах и не хочет сходить почитать доку.
Ответить | Правка | Наверх | Cообщить модератору

60. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (7), 21-Авг-26, 03:58 
> А ничего что калькулятор, как и вольфрам, не на fpu могут работать, а на длинной, рациональной или символьной арифметике?

хотите сказать, что как и калькулятор так и вольфрам используют максимальную допустимую точность в своих вычислениях вне зависимости от символьной? :)))))

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

preferredWidth - для промежуточных вычислений, или двойной точности. Проблема возникает только в том случае когда мы применяем одно из правил округления промежуточного результата. Мой посыл, зачем в таком случае не использовать для промежуточных вычислений максимальную точность (аля двойную к примеру) и не округлять их.

"""
Expression evaluation
The standard recommends how language standards should specify the semantics of sequences of operations, and points out the subtleties of literal meanings and optimizations that change the value of a result. By contrast, the previous 1985 version of the standard left aspects of the language interface unspecified, which led to inconsistent behavior between compilers, or different optimization levels in an optimizing compiler.

Programming languages should allow a user to specify a minimum precision for intermediate calculations of expressions for each radix. This is referred to as preferredWidth in the standard, and it should be possible to set this on a per-block basis. Intermediate calculations within expressions should be calculated, and any temporaries saved, using the maximum of the width of the operands and the preferred width if set. Thus, for instance, a compiler targeting x87 floating-point hardware should have a means of specifying that intermediate calculations must use the double-extended format. The stored value of a variable must always be used when evaluating subsequent expressions, rather than any precursor from before rounding and assigning to the variable.
"""

Ответить | Правка | Наверх | Cообщить модератору

112. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +2 +/
Сообщение от Cooler (??), 21-Авг-26, 12:31 
Безнадёжный случай. Уже всё разжевали, и в рот положили. «Об стенку горохом». Надеюсь вы не зарабатываете программированием.
Ответить | Правка | Наверх | Cообщить модератору

119. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Аноним (7), 21-Авг-26, 13:15 
> Безнадёжный случай. Уже всё разжевали, и в рот положили. «Об стенку горохом».

//en.wikipedia.org/wiki/Floating-point_arithmetic

//ru.wikipedia.org/wiki/Вещественное_число

Раздел "Аксиоматика вещественных чисел"

Ну собственно 754-2019 - IEEE Standard for Floating-Point Arithmetic

Раздел 10. Expression evaluation

> Надеюсь вы не зарабатываете программированием.

Я не раб!

Ответить | Правка | Наверх | Cообщить модератору

87. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от any (??), 21-Авг-26, 09:53 
~~~
tclsh> expr 0.001 + 1e20 - 1e20 + 0.002
0.002

tclsh> expr (0.001 + 1e20) + (-1e20 + 0.002)
0.0

tclsh> expr 0.001 + (1e20 - 1e20) + 0.002
0.003
~~~

Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

122. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Аноним (7), 21-Авг-26, 13:18 
> ~~~
> tclsh> expr 0.001 + 1e20 - 1e20 + 0.002
> 0.002
> tclsh> expr (0.001 + 1e20) + (-1e20 + 0.002)
> 0.0
> tclsh> expr 0.001 + (1e20 - 1e20) + 0.002
> 0.003
> ~~~

wolframalpha

0.001 + 1e20 - 1e20 + 0.002 = 0.003

(0.001 + 1e20) + (-1e20 + 0.002) = 0.003

0.001 + (1e20 - 1e20) + 0.002 = 0.003

в чем проблема?

Ответить | Правка | Наверх | Cообщить модератору

202. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (120), 22-Авг-26, 11:34 
Ты же сам написал, что "вольфрам не работает с вещественными числам". Ты можешь понять, чем отличаются вещественные числа от символьной аналитики? И какой ценой это даётся?
Ответить | Правка | Наверх | Cообщить модератору

224. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (223), 23-Авг-26, 00:09 
> Ты же сам написал, что "вольфрам не работает с вещественными числам".

Ты либо очередной бот, либо бот который вырывает слова из контекста, перечитай еще раз полностью мое утверждение!

"""
ибо вольфрам не работает с вещественными числами в формате floating-point.
"""

> Ты можешь понять, чем отличаются вещественные числа от символьной аналитики? И какой ценой это даётся?

Желаю тебе полетать на самолете с такой "символьной" арифметикой!

пс: жалуйся

Ответить | Правка | Наверх | Cообщить модератору

111. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (120), 21-Авг-26, 12:17 
user@home:~$ python

>>> 0.001 + 1e20 - 1e20 + 0.002

0.002
>>> (0.001 + 1e20) + (-1e20 + 0.002)

0.0
>>> 0.001 + (1e20 - 1e20) + 0.002

0.003

Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

121. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Аноним (7), 21-Авг-26, 13:18 
wolframalpha

0.001 + 1e20 - 1e20 + 0.002 = 0.003

(0.001 + 1e20) + (-1e20 + 0.002) = 0.003

0.001 + (1e20 - 1e20) + 0.002 = 0.003

в чем проблема?

Ответить | Правка | Наверх | Cообщить модератору

132. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (132), 21-Авг-26, 14:21 
А сам сможешь объяснить? Или это магия?
Ответить | Правка | Наверх | Cообщить модератору

139. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (7), 21-Авг-26, 14:35 
> А сам сможешь объяснить? Или это магия?

Выше описал все, к прочтению аксиоматика вещественных чисел!

Ответить | Правка | Наверх | Cообщить модератору

142. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Аноним (132), 21-Авг-26, 14:46 
Объясни, пожалуйста, не то, почему у тебя результаты одинаковые получаются, а почему питон даёт разные. Ведь, судя по даваемым тобой ссылкам, ты в теме.
Ответить | Правка | Наверх | Cообщить модератору

149. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Аноним (7), 21-Авг-26, 15:49 
Выше писал, продублирую

IEEE Std 754-2019 Standard for Floating-Point Arithmetic

"""
3.2 Specification levels
3.2.0 Floating-point arithmetic is a systematic approximation of real arithmetic, as illustrated in Table 3.1.

Floating-point arithmetic can only represent a finite subset of the continuum of real numbers.

Consequently certain properties of real arithmetic, such as associativity of addition, do not always hold for floating-point arithmetic.
"""

Вам нужен перевод? Черным по белому "finite subset of the continuum of real numbers".

А тут "Consequently certain properties of real arithmetic, such as associativity of addition, do not always hold for floating-point arithmetic." - акцент "do not always hold" - в переводе на русский - "НЕ ВСЕГДА сохраняет", то есть, ассоциативность как свойство есть, но НЕ ВСЕГДА сохраняется из-за чего? А это уже другой вопрос!

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

Ответить | Правка | Наверх | Cообщить модератору

151. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (120), 21-Авг-26, 16:41 
> вольфрам не работает с вещественными числами

Да ты просто гений! Наконец-то додумался!

Ответить | Правка | Наверх | Cообщить модератору

167. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Аноним (7), 21-Авг-26, 17:53 
> Да ты просто гений! Наконец-то додумался!

а до тебя никак не доходит, что не башкой гвозди надо забивать, а молотком. Если тебе нужен математически корректный результат при работе с вещественными числами, ты представлением Floating-Point пользоваться не должен!!!!

Ответить | Правка | Наверх | Cообщить модератору

188. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (188), 21-Авг-26, 21:36 
В теории рядов перестановка слагаемых ряда не допускается.
Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

8. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от aname (ok), 21-Авг-26, 00:41 
Cargo- это надёжно, писали они
Cargo- это безопасно, писали они
Ответить | Правка | Наверх | Cообщить модератору

15. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Аноним (18), 21-Авг-26, 00:52 
Ну как. Если относительно - то действительно надёжно и безопасно, потому что рабочей системы работы с зависимостями более надёжной и безопасной пока не существует. Где она есть, пусть она централизована (npm, cpan, rubygems, pypi), пусть нет (go) - могут получить доступ и опубликовать новую версию с малварью. Попадёт ли она к тебе без действий с твоей стороны - нет. Может попасть при обновлении, как везде. Есть cargo vet, cargo cooldown, nighly min-publish-age чтобы вероятность этого уменьшить, как везде. Чтобы устранить её совсем - такого не сделал ещё никто - для этого нужна целая распределённая система аудита. И я абсолютно уверен что если такая появится, то появится именно в rust.
Ответить | Правка | Наверх | Cообщить модератору

19. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (16), 21-Авг-26, 00:57 
cargo audit . есть же
Ответить | Правка | Наверх | Cообщить модератору

20. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (18), 21-Авг-26, 00:59 
Нету. Иди читай что я написал и что такое cargo audit.
Ответить | Правка | Наверх | Cообщить модератору

76. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +2 +/
Сообщение от Аноним (76), 21-Авг-26, 08:37 
> потому что рабочей системы работы с зависимостями более надёжной и безопасной пока не существует

А вариант использовать системные пакеты, а не свой велосипед?

Ответить | Правка | К родителю #15 | Наверх | Cообщить модератору

131. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (130), 21-Авг-26, 14:21 
Нет конечно, с С/C++ и питоном нажрались уже этого говна - и невозможность поставить разные версии зависимости, и отсутствие свежих версий, и зоопарк репозиториев со всеми комбинациями помойки, и внесённые кривожопыми мантейнерами баги, и просто появившиеся баги потому что версию обновили, а тесты не запустили. Потом, глупо думать что мантейнеры проводят аудит кода.
Ответить | Правка | Наверх | Cообщить модератору

173. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –3 +/
Сообщение от Аноним (173), 21-Авг-26, 20:22 
Это работает, в отличии от. самодельных велосипедов для одного языка.

А такие как rust так и будут свалкой протухшего д.

Ответить | Правка | Наверх | Cообщить модератору

160. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +2 +/
Сообщение от Аноним (153), 21-Авг-26, 16:59 
Как тебе "системный" пакет поможет не втащить малварь? Ты же не думаешь, что майнтейнер вручную вычитывает каждый дифф? Скрипт прогнал, он версии побампал, собралось? Значит готово для LTS.
Ответить | Правка | К родителю #76 | Наверх | Cообщить модератору

174. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Аноним (173), 21-Авг-26, 20:22 
> Как тебе "системный" пакет поможет не втащить малварь? Ты же не думаешь, что майнтейнер вручную вычитывает каждый дифф? Скрипт прогнал, он версии побампал, собралось? Значит готово для LTS.

Покажи пример в debian.

Ответить | Правка | Наверх | Cообщить модератору

93. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от опеншлёпивпродакшн (?), 21-Авг-26, 10:07 
Так ведь подменить пакет можно в любой системе. В чём вина именно Cargo?
Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

98. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +2 +/
Сообщение от Аноним (98), 21-Авг-26, 10:56 
В централизации.
Ответить | Правка | Наверх | Cообщить модератору

133. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Аноним (130), 21-Авг-26, 14:21 
Эта централизация позволила подмену через час заблокировать. Без централизации сидел бы на дырявом arrayref до скончания веков.
Ответить | Правка | Наверх | Cообщить модератору

161. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +2 +/
Сообщение от Аноним (153), 21-Авг-26, 17:00 
А репы Дебиана или Арча -- это иоже централизация или это другое?
Ответить | Правка | К родителю #98 | Наверх | Cообщить модератору

250. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (250), 24-Авг-26, 14:46 
Тоже централизация, но проще проверяяетсяя и форкается.
Ответить | Правка | Наверх | Cообщить модератору

13. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +6 +/
Сообщение от Ivan_83 (ok), 21-Авг-26, 00:49 
> Дополнительно можно отметить компрометацию популярного crate-пакета arrayref, насчитывающего более 53 млн загрузок за последние 90 дней и применяемого в качестве зависимости у 403 пакетов.

А я всё жду когда подменят знаменитый утановочный скрипт раста, и любители: "да чо там компилять часами, дурак шоле, вон curl | sh и готово!" будут немного отчпоканы :)

Ответить | Правка | Наверх | Cообщить модератору

91. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от tkzv (ok), 21-Авг-26, 10:06 
> curl | sh

Гораздо чаще sudo { curl | sh; }

Ответить | Правка | Наверх | Cообщить модератору

113. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Аноним9000 (?), 21-Авг-26, 12:40 
Ой не травите душу. Это теперь везде и всюду. Вся безопасность упирается в компрометацию веб сервера
Ответить | Правка | К родителю #13 | Наверх | Cообщить модератору

163. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Аноним (153), 21-Авг-26, 17:03 
> Вся безопасность упирается в компрометацию веб сервера

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

Ответить | Правка | Наверх | Cообщить модератору

196. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (196), 22-Авг-26, 00:04 
Да
Ответить | Правка | Наверх | Cообщить модератору

212. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним9000 (?), 22-Авг-26, 16:08 
Каких ещё пакетов? .sh пакетов?
В случае пакетов дистрибутива недостаточно скомпрометировать сервер, с которого отдаются пакеты, ибо в отличие от sh скриптов пакеты подписаны
Ответить | Правка | К родителю #163 | Наверх | Cообщить модератору

14. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (16), 21-Авг-26, 00:51 
>компрометацию популярного crate-пакета

Crates.io это просто свалка, а надо пользоваться проверяемыми репозиториями, как например axiom repo. И не Rust'ом

Ответить | Правка | Наверх | Cообщить модератору

21. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Аноним (18), 21-Авг-26, 01:03 
Тут репозиторий = васян форкнул полтора нужных ему пакета и не обновляет. Проверяемыми = васян мамой клянётся что не нашёл там закладок. Ну не, для кого-то возможно и решение.
Ответить | Правка | Наверх | Cообщить модератору

82. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Жироватт (ok), 21-Авг-26, 09:25 
По крайней мере, тут васян один (вместо неограниченного ничем круга вованов), форкнул он нужные ему пакеты (т.е. они выливаются не просто чтобы вылить, а используются) и он хоть как-то это проверил (заинтересован в чистоте пакетов для себя). Это само по себе уже куда как надёжнее, чем карго в целом
Ответить | Правка | Наверх | Cообщить модератору

164. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (153), 21-Авг-26, 17:04 
Если один васян это надёжно, то сто васянов -- в сто раз надёжнее.
Ответить | Правка | Наверх | Cообщить модератору

17. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Аноним (18), 21-Авг-26, 00:55 
> была размещена в 10:15 (MSK) и просуществовала до 11:41, после чего была удалена администраторами crates.io.

Лол. В cargo nighly есть min-publish-age, ставил 2 недели зачем-то, видимо можно день ставить и обновляться совершенно без страха.

Ответить | Правка | Наверх | Cообщить модератору

35. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +2 +/
Сообщение от Сладкая булочка (?), 21-Авг-26, 01:53 
> Взаимодействие между обвязкой ManuallyDrop и умным указателем Box теперь не приводит к неопределённому поведению.

А что это эксперты с пеной у рта твердили про отсутсвие уб в расте? Получается обманули?

Ответить | Правка | Наверх | Cообщить модератору

43. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (18), 21-Авг-26, 02:13 
unsafe же
Ответить | Правка | Наверх | Cообщить модератору

249. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (250), 24-Авг-26, 14:45 
Что unsafe? Это не магическое слово, делающее все хорошо.
Ответить | Правка | Наверх | Cообщить модератору

83. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Жироватт (ok), 21-Авг-26, 09:26 
Сектанты, сэр.
Ответить | Правка | К родителю #35 | Наверх | Cообщить модератору

37. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Аноним10084 и 1008465039 (?), 21-Авг-26, 02:00 
Блистательный Rust развивается, это не может не радовать! Но вот централизованные репозитории библиотек без модерации осуждаем, я в последнее время вообще считаю, что с библиотеками надо очень аккуратно - по минимуму, и желательно всё клонировать прямо к себе - атаку на цепочку поставки никто не отменял!
Ответить | Правка | Наверх | Cообщить модератору

42. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (18), 21-Авг-26, 02:13 
> Но вот централизованные репозитории библиотек без модерации осуждаем

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

> и желательно всё клонировать прямо к себе - атаку на цепочку поставки никто не отменял!

Атаку на склонированное себе гнильё тоже.

Ответить | Правка | Наверх | Cообщить модератору

53. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Гнилье (?), 21-Авг-26, 03:00 
>Или может репозитории с модерацией

Будешь на госуслугах разрешение запрашивать на публикацию пакета, а хацкеры с купленого акка бабы сраки выкладывать без вопросов

Ответить | Правка | Наверх | Cообщить модератору

56. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним10084 и 1008465039 (?), 21-Авг-26, 03:05 
Склонировал, проверил что нормальная вещь, работаешь. Ни в коем случае не автообновлять! Вижу это так, хотя для коммерческой low-stake разработки, кажется, мало реально, всем же надо быстро...
Ответить | Правка | К родителю #42 | Наверх | Cообщить модератору

135. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (130), 21-Авг-26, 14:26 
А никто и не автообновляет, но обновлять всё равно придётся. Новая зависимость - нужно обновлять, потому что её нужны новые версии. Уязвимость в старом пакете - нужно обновлять и его, и далее по цепочке. cargo всё это делает безопасно и предсказуемо, руками ты сделаешь так же только руками.
Ответить | Правка | Наверх | Cообщить модератору

136. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Аноним10084 и 1008465039 (?), 21-Авг-26, 14:29 
С cargo или без, а код библиотеки желательно проверить перед обновлением
Ответить | Правка | Наверх | Cообщить модератору

77. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (76), 21-Авг-26, 08:40 
> А чо не осуждаем?

Пакеты дистрибутивов.

Ответить | Правка | К родителю #42 | Наверх | Cообщить модератору

52. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Отмени (?), 21-Авг-26, 02:57 
> в последнее время вообще считаю, что с библиотеками надо очень аккуратно - по минимуму, и желательно всё клонировать прямо к себе

Гений, додумался наконец, все нормальные пацаны так еще с 90х делают

Ответить | Правка | К родителю #37 | Наверх | Cообщить модератору

55. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Аноним10084 и 1008465039 (?), 21-Авг-26, 03:03 
Да я-то лично всегда был в этой теме параноиком, зато учителя и наставники мои настаивали - инженер не должен делать то, что уже сделали, долой NIH-синдром, старайся найти в Интернете, есть ли уже решения.
Ответить | Правка | Наверх | Cообщить модератору

46. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Аноним (18), 21-Авг-26, 02:23 
К слову, ходит расхожее заблуждение что алгебраические операции всегда увеличивают погрешность. Это не так:

```rust
fn main() {
    let mut s1 = 0.0_f32;
    let mut s2 = 0.0_f32;
    let n = 1_000_000_000;
    let a = 1_f32 / n as f32;

    for _ in 0..n {
        s1 += a;
    }

    for _ in 0..n {
        s2 = s2.algebraic_add(a);
    }

    eprintln!("{} {}", s1, s2);
}
```
```
0.03125 0.8858695
```
С миллионом:
```
1.0090389 0.9999056
```
С тысячей:
```
0.9999907 1.0000006
```
Точность выше ни много ни мало на 2 порядка потому что получаются халявные частичные суммы на симд. Или бывает что у компилятора появляется возможность использовать FMA, а это минус округление.

Но мораль конечно в том что если погрешности важны, нужно явно продумывать последовательность операций.

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

Ответить | Правка | Наверх | Cообщить модератору

126. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Аноним (7), 21-Авг-26, 13:38 
>[оверквотинг удален]
>     let n = 1_000_000_000;
>     let a = 1_f32 / n as f32;
>     for _ in 0..n {
>         s1 += a;
>     }
>     for _ in 0..n {
>         s2 = s2.algebraic_add(a);
>     }
>     eprintln!("{} {}", s1, s2);
> }

//play.rust-lang.org/?version=stable&mode=debug&edition=2024

При n = 1_000_000_000;

0.03125 0.03125

При n = 1_000_000;

1.0090389 1.0090389

При n = 1_000;

0.9999907 0.9999907

Ответить | Правка | Наверх | Cообщить модератору

183. Скрыто модератором  +/
Сообщение от Аноним (-), 21-Авг-26, 21:13 
Ответить | Правка | Наверх | Cообщить модератору

185. Скрыто модератором  +/
Сообщение от Аноним (7), 21-Авг-26, 21:21 
Ответить | Правка | Наверх | Cообщить модератору

50. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +2 +/
Сообщение от Лажа (?), 21-Авг-26, 02:36 
Когда строишь цифровой концлагерь, что для тебя самое страшное? Что кто-то сделает jailbreak. А через что делают jailbreak например на айфонах? Через сишные дыры.

Вот почему раст так форсят.

Почему разрабы раста взяли очевидно дырявую модель от npm для своего cargo? А как еще обосновать выкладку пакетов по паспорту, если не для защиты от хакеров?

Ответить | Правка | Наверх | Cообщить модератору

73. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Аноним (73), 21-Авг-26, 08:04 
>делают jailbreak например на айфонах? Через сишные дыры.

Никто ведь не видел исходники айфона. В такой ситуации делать голословные выводы это не что иное как вброс. И кстати, Эппл насколько я знаю использует не чистый Си, а Swift. А до Swift он использовад Object C.

Ответить | Правка | Наверх | Cообщить модератору

177. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Загрузчик (?), 21-Авг-26, 20:49 
Исходники ядра открыты.

>И кстати, Эппл насколько я знаю использует не чистый Си, а Swift

А звон, звон слышал? Знаешь где он?

Ответить | Правка | Наверх | Cообщить модератору

80. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (80), 21-Авг-26, 09:17 
>А через что делают jailbreak например на айфонах? Через сишные дыры.

Рут, который получили с помощью дырявых uutils не считается?

Ответить | Правка | К родителю #50 | Наверх | Cообщить модератору

178. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Ерёмослав (?), 21-Авг-26, 20:51 
Фома и Ерёма
Ответить | Правка | Наверх | Cообщить модератору

65. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –2 +/
Сообщение от Аноним (65), 21-Авг-26, 06:13 
Язык переусложнён. Точка бифуркации пройдена.
Ответить | Правка | Наверх | Cообщить модератору

211. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Прохожий (??), 22-Авг-26, 16:05 
Ну, для тех, кто только вчера в программировании появился - возможно. Но в этой области уже LLM правят балом. Для них - это хороший, годный язык, потому что дешевле на этапе компиляции ловить проблемы, чем потом объяснять нейронке, где и как она облажалась. Плюс в инфраструктуре Rust есть встроенный линтер. Тоже удобно, если LLM используется.
Ответить | Правка | Наверх | Cообщить модератору

247. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (250), 24-Авг-26, 14:40 
Для LLM Раст - это плохой, негодный язык, потому что его кодовая база очень мала и фрагментирована.
Ответить | Правка | Наверх | Cообщить модератору

72. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +4 +/
Сообщение от Аноним (72), 21-Авг-26, 07:49 
Ну теперь нужен новый язык, который будет решать и эту уязвимость. В этом языке нужно запретить подключать модули. Раст небезопасен
Ответить | Правка | Наверх | Cообщить модератору

84. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Жироватт (ok), 21-Авг-26, 09:37 
Нужен новый язык, в котором use будет не инструкцией компилятору
"возьми модуль А и ищи символы в нем, если указано А.символ - после чего добавить символ и весь пул кода, от которого зависит символ пометь к компиляции"
, а
"возьми антивирус вишневского и прогони модуль А через него, после чего возьми и прогони через наноЫЫ с базой правил комплаенса, а потом через AnomalyTool собери аномалии и прогони их через вторую наноЫЫ, а только потом, если итоговый score будет ниже порога классификации 'похоже, троян' - ищи символ ...".

И то, это не гарантирует вообще никакой защиты ни от злоупотреблений со стороны поставщиков инструментов бишапашнашти - "а у Васяна неправильный паспорт и живет он в неправильном городе, у Вовочки - неправильный череп а Петечка - недостаточно каялся перед ашкеназами за Колокост в твитторе, поэтому их модули будут всегда иметь скор 'малварь, мля буду'", ни от атак на загрузчики пакетов, ни от специализированных инъекций на загрузчик пакета (из сети) или на эту систему бишапашнашти.  

Ответить | Правка | Наверх | Cообщить модератору

144. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –2 +/
Сообщение от Аноним (129), 21-Авг-26, 15:16 
Ну так не подключай модули и в расте, пользуйся только стандартной библиотекой и пиши свои велосипеды для всего. А если и стандартной библиотеки боишься - пиши уже свой свой ЯП и успокойся.
Ответить | Правка | К родителю #72 | Наверх | Cообщить модератору

175. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Аноним (173), 21-Авг-26, 20:26 
Значит советуешь из системы удалить все что на нем написано? Так и запишем.
Ответить | Правка | Наверх | Cообщить модератору

75. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Tron is Whistling (?), 21-Авг-26, 08:06 
Ехал сейф через ансейф, а приехал всё к тем же проблемам типовых краудхламовников.
Ответить | Правка | Наверх | Cообщить модератору

85. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Жироватт (ok), 21-Авг-26, 09:40 
Если сейф внутри - ансейф, то насколько этот сейф ансейф?
Можно ли щитать сущность сейф и которая определяется поставщиком как сейф, если внутри у неё ансейф?
Ответить | Правка | Наверх | Cообщить модератору

89. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (89), 21-Авг-26, 09:58 
это ub, а ub   в расте нет, есть unsafe который просматривают миллионы глаз, как и просматривают crate.io
Ответить | Правка | Наверх | Cообщить модератору

92. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Tron is Whistling (?), 21-Авг-26, 10:07 
Да, есть вполне db. Кто-то в сейф залил ансейф и куча верящих в сейф теперь собрала и в лучшем случае - задеплоила этот ансейф в свой сейф.

db

Ответить | Правка | Наверх | Cообщить модератору

110. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (120), 21-Авг-26, 12:07 
> просматривают миллионы глаз

А потом у этих миллиона глаз интернет пропадает, как прошлой осенью :) Недоглядели.

Ответить | Правка | К родителю #89 | Наверх | Cообщить модератору

229. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Прохожий (??), 23-Авг-26, 05:25 
>Если сейф внутри - ансейф, то насколько этот сейф ансейф?

Очевидный ответ: safe внутри unsafe - это всё ещё safe.

>Можно ли щитать сущность сейф и которая определяется поставщиком как сейф, если внутри у неё ансейф?

В общем случае - нет, нельзя. А в частных случаях можно.

Ответить | Правка | К родителю #85 | Наверх | Cообщить модератору

88. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –2 +/
Сообщение от Аноним (88), 21-Авг-26, 09:55 
Проще открыть hex редактор, написать бинарный машинный код, сохранить в файл. Потом chmod +x myfile.
Ответить | Правка | Наверх | Cообщить модератору

228. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Прохожий (??), 23-Авг-26, 05:21 
Не проще, если кросс-платформенность нужна
Ответить | Правка | Наверх | Cообщить модератору

246. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (250), 24-Авг-26, 14:37 
За кросс-платформенностью это не к Rust-у.
Ответить | Правка | Наверх | Cообщить модератору

94. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (94), 21-Авг-26, 10:27 
Решение проблемы: 1) в виртуалке скачать все 2к зависимостей вашего мегапроекта; 2) проверить клод-фейблом все 2к пакетов на закладки, просмотреть самому дополнительно - если есть ум; 3) создать свой локальный регистри и привязать свой локальный мегапроект к нему; 4) перенести всё на второй физический комп, не подключенный к интернету, а только к локальной приватной сети; 5) работать спокойно, наслаждаясь жизнью; 6) меня не благодарить.
Ответить | Правка | Наверх | Cообщить модератору

97. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (98), 21-Авг-26, 10:54 
> проверить клод-фейблом все 2к пакетов на закладки

Во сколько это обойдётся?

> создать свой локальный регистри

Как ты будешь его синхронизировать? Повторишь цепочку с нуля распахнув карман в надежде что ИИ всё найдёт инфа 100%?

Ответить | Правка | Наверх | Cообщить модератору

105. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (94), 21-Авг-26, 11:57 
Синхронизация так таковая отпадает, все версии пакетов гвоздями прибиваются к версии раста и к определенному ряду версий глибц. Фейблу придётся перевести порядочную сумму, но скорее всего это сделает ваш работодатель. Обновлять пакеты можно, только если вышли их критические релизы с секурити фиксами - в этом случае фейблу и кошельку вашего нанимателя будет полегче искать закладки, ибо проверятся будут только новые версии пакетов по всему дереву зависимостей.
Ответить | Правка | Наверх | Cообщить модератору

104. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Аноним (103), 21-Авг-26, 11:45 
> проверить клод-фейблом все 2к пакетов на закладки

Откажется
"Cybersecurity researchers are complaining that Anthropic's new model Fable has guardrails that are too strict for any cybersecurity work"

Ответить | Правка | К родителю #94 | Наверх | Cообщить модератору

107. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (94), 21-Авг-26, 12:02 
Опусом 5 тогда. Там закладки примитивные, рассчитанные в первую очередь на аморфное поведение и безответственность "тысячи глаз".
Ответить | Правка | Наверх | Cообщить модератору

114. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним9000 (?), 21-Авг-26, 12:41 
Постоянно сталкиваюсь с этой проблемой. Решение пока нашел в GLM
Ответить | Правка | К родителю #104 | Наверх | Cообщить модератору

162. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (162), 21-Авг-26, 17:02 
Как будто решение хуже проблемы.
Ответить | Правка | Наверх | Cообщить модератору

214. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним9000 (?), 22-Авг-26, 16:09 
Расскажи об этом hugging face
Ответить | Правка | Наверх | Cообщить модератору

95. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от xsignal (ok), 21-Авг-26, 10:46 
Его всё ещё выпускают?.. Сейчас же ИИ уже всё находит на Си. И не надо ломать мозг и портить голову нечеловеческим синтаксисом и логикой Раста.
Ответить | Правка | Наверх | Cообщить модератору

145. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Карлос Сношайтилис (ok), 21-Авг-26, 15:26 
ИИ обучен на том С, что есть.
Накодит так же
Ответить | Правка | Наверх | Cообщить модератору

150. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от xsignal (ok), 21-Авг-26, 16:13 
Всё нормально он находит, не гони.
Ответить | Правка | Наверх | Cообщить модератору

154. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Карлос Сношайтилис (ok), 21-Авг-26, 16:55 
Ты два раза не заметил или забил на исправление слова "находит".
ИИшка на С пишет так же. "Нормально"
Ответить | Правка | Наверх | Cообщить модератору

159. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (162), 21-Авг-26, 16:58 
Тебе пора понять что ты пишешь чушь.
Ответить | Правка | Наверх | Cообщить модератору

99. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +3 +/
Сообщение от Аноним (99), 21-Авг-26, 11:03 
> arrayref, насчитывающего 53 млн загрузок за 3 месяца

Чтобы скопировать условно uint16 в массив 53 миллиона человек пошли за сторонней библиотекой, реализующей 4 макроса.

Раст не может быть смешнее уже.

Ответить | Правка | Наверх | Cообщить модератору

127. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Tron is Whistling (?), 21-Авг-26, 13:39 
Было бы смешно, если бы не было так уныло.
Ответить | Правка | Наверх | Cообщить модератору

115. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (38), 21-Авг-26, 12:44 
Может быть это 1 миллион человек сходил 53 раза
Ответить | Правка | К родителю #99 | Наверх | Cообщить модератору

258. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Tron is Whistling (?), 24-Авг-26, 22:47 
Скорее ляпсов ~400 по ~130000 раз, просто подвесив привычным образом апдейт на крон * * * * *, вообще не разбираясь, что там за * и зачем они нужны. А дальше всего-то 90 дней по 1440 запусков, и 52 миллиона как с куста. Оставшийся миллион сделали остальные 10000 любителей влажного :D
Ответить | Правка | Наверх | Cообщить модератору

215. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Прохожий (??), 22-Авг-26, 16:15 
Осталось понять, причём здесь язык программирования? Это же не он качает эту библиотеку, а люди. Впрочем, я давно не удивляюсь способности логически мыслить у местных "экспертов".
Ответить | Правка | К родителю #99 | Наверх | Cообщить модератору

217. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (217), 22-Авг-26, 16:33 
> Осталось понять, причём здесь язык программирования? Это же не он качает эту библиотеку, а люди. Впрочем, я давно не удивляюсь способности логически мыслить у местных "экспертов".

Может потому, что нет стандарта, и все воспринимают в качестве языка утилиты от разработчиков, а они пилят заточку на cargo.

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

Ответить | Правка | Наверх | Cообщить модератору

227. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Прохожий (??), 23-Авг-26, 05:13 
>Может потому, что нет стандарта

Причём здесь стандарт вообще?

>все воспринимают в качестве языка утилиты от разработчиков, а они пилят заточку на cargo

Ещё раз. Ибо, похоже, с первого раза не дошло. Вас, лично вас, кто принуждает пользоваться центральной репой? Кто вам мешает поднять свою, локальную? Cargo позволяет так делать.

Ответить | Правка | Наверх | Cообщить модератору

234. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (120), 23-Авг-26, 13:09 
> Кто вам мешает поднять свою, локальную?

Ну это как посоветовать поднять свой Гугл.

Ответить | Правка | Наверх | Cообщить модератору

237. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Аноним (99), 23-Авг-26, 21:47 
Давай логически помыслим вместе, эксперт:
1. Язык решил, что массивы ОБЯЗАНЫ быть иммутабельными.
2. Людям это не нужно.
3. Язык говорит: ну тогда пишите бойлерплейт с ансейфами всегда, я же такой безопасный. Это ВЫ во всем виноваты будете.
4. Людям надоело и они сделали библиотеку с 4мя макросами, которую используют миллионы, что подтверждает бессмысленность повесточки раста.
5. Если бы язык не был таким идиотским, то ничего из этого списка не пришлось бы писать.
Ответить | Правка | К родителю #215 | Наверх | Cообщить модератору

251. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (251), 24-Авг-26, 15:34 
Ты не понял, зачем нужен arrayref. Он нужен для того, чтобы преобразовать &[T] в &[T; N]. Первое это указатель на массив с размером задаваемым динамически. Второе -- это указатель на массив с размером известным на этапе компиляции. Мутабельность/иммутабельность тут сбоку, она просто приводит к тому, что макросы надо дублировать для мутабельных и иммутабельных массивов, поскольку мутабельность нельзя задать параметрически.

>     4. Людям надоело и они сделали библиотеку с 4мя макросами, которую используют миллионы, что подтверждает бессмысленность повесточки раста.
>    5. Если бы язык не был таким идиотским, то ничего из этого списка не пришлось бы писать.

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

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

Ответить | Правка | Наверх | Cообщить модератору

252. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (251), 24-Авг-26, 15:35 
> Чтобы скопировать условно uint16 в массив

Вижу в книгу вижу фигу? В arrayref нет ни одного копирования. Ни в массив, ни из него.

Ответить | Правка | К родителю #99 | Наверх | Cообщить модератору

109. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +2 +/
Сообщение от Аноним (120), 21-Авг-26, 12:04 
> Ценой применения алгебраических методов является недетерминированность результатов вычисления

А вот и UB полезли, как пирожки из печки.

Ответить | Правка | Наверх | Cообщить модератору

216. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –3 +/
Сообщение от Прохожий (??), 22-Авг-26, 16:16 
Недетерменированность результата - это не то же самое, что UB
Ответить | Правка | Наверх | Cообщить модератору

219. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +2 +/
Сообщение от фняк (?), 22-Авг-26, 19:34 
Это и есть UB. Только его почему то постеснялись так назвать
Ответить | Правка | Наверх | Cообщить модератору

226. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –4 +/
Сообщение от Прохожий (??), 23-Авг-26, 05:08 
Нет, это не есть UB в обычном понимании этого термина. UB - это когда разработчики языка отдают на откуп разработчикам компилятора способ реализации той или иной фичи. В таких случаях код на таком языке становится непереносимым. Здесь же речь идёт о недерменированности результата в силу существующих ограничений, накладываемых требованиями к производительности вычисления и апаратной платформой (любой, а не какой-то специфической). Вон, выше, где люди спорят о типах чисел всё объясняется.
Ответить | Правка | Наверх | Cообщить модератору

232. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Аноним (120), 23-Авг-26, 13:03 
> UB - это когда разработчики языка отдают на откуп разработчикам компилятора способ реализации той или иной фичи

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

Ответить | Правка | Наверх | Cообщить модератору

233. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (120), 23-Авг-26, 13:07 
> В таких случаях код на таком языке становится непереносимым.

Раст никуда не переносится, если что. Даже для thumbv7 - ещё ничего готового нету. А ниже - никогда не будет.

Ответить | Правка | К родителю #226 | Наверх | Cообщить модератору

235. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  –1 +/
Сообщение от Аноним (235), 23-Авг-26, 14:11 
>> В таких случаях код на таком языке становится непереносимым.
> Раст никуда не переносится, если что. Даже для thumbv7 - ещё ничего
> готового нету. А ниже - никогда не будет.

Главное, повторять почаще и ссылаться на "мы все так говорим, а значит это правда!" 🤣


% rustc --print target-list|grep thumb          
thumbv4t-none-eabi
thumbv5te-none-eabi
thumbv6-none-eabi
thumbv6m-none-eabi
thumbv6m-nuttx-eabi
thumbv7a-none-eabi
thumbv7a-none-eabihf
thumbv7a-nuttx-eabi
thumbv7a-nuttx-eabihf
thumbv7a-pc-windows-msvc
thumbv7a-uwp-windows-msvc
thumbv7em-none-eabi
thumbv7em-none-eabihf
thumbv7em-nuttx-eabi
thumbv7em-nuttx-eabihf
thumbv7m-none-eabi
thumbv7m-nuttx-eabi
thumbv7neon-linux-androideabi
thumbv7neon-unknown-linux-gnueabihf
thumbv7neon-unknown-linux-musleabihf
thumbv7r-none-eabi
thumbv7r-none-eabihf

> А ниже - никогда не будет.

https://shanesnover.com/2024/02/07/intro-to-rust-on-gba.html


Ответить | Правка | Наверх | Cообщить модератору

244. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Аноним (120), 24-Авг-26, 10:09 
Заявлено - не значит сделано. И да, ты видишь то, что потенциально может LLVM, но не реализовано в расте.
Ответить | Правка | Наверх | Cообщить модератору

257. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (235), 24-Авг-26, 20:11 
> Заявлено - не значит сделано.
> И да, ты видишь то, что потенциально может LLVM, но не реализовано в расте.

🙄 Опять унылая опеннетная кlouнада от очередного воителя супротив раста 🙄

Там, по ссылке выше, чувак Conways Game of Life на/для GBA написал и запустил, а у тебя то
"отсутствие гарантий при прохождении тестового набора." (ну да, не прогоняют штатно тесты на проце 1994 года), то вобще вдруг "не реализовано" (что тоже не очень вяжется с реальностью - т.е. недостаточно часто повторял, старайся еще!):


https://doc.rust-lang.org/rustc/platform-support/armv4t-none...
> These two targets are part of the arm-none-eabi target group, and all the information there applies.

https://doc.rust-lang.org/rustc/platform-support/armv7a-none...
> Bare-metal target for CPUs in the Armv7-A architecture family, supporting dual ARM/Thumb mode. The armv7a-none-eabi* targets use Arm mode by default

.


Ответить | Правка | Наверх | Cообщить модератору

236. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Аноним (120), 23-Авг-26, 18:23 
P.S.

> Целевые платформы thumb ... отсутствие гарантий при прохождении тестового набора.

Ответить | Правка | К родителю #233 | Наверх | Cообщить модератору

239. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Markx (?), 23-Авг-26, 22:18 
UB это когда нет четкого(детерменированного) поведения, отчем в новости и сказано
Ответить | Правка | К родителю #226 | Наверх | Cообщить модератору

118. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (120), 21-Авг-26, 13:13 
> уровень поддержки, который подразумевает гарантию сборки, но отсутствие гарантий при прохождении тестового набора

Я в HEX-редакторе так же могу вслепую что-то гарантированно напечатать, но оно тесты не пройдёт.

Ответить | Правка | Наверх | Cообщить модератору

238. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Markx (?), 23-Авг-26, 22:04 
Ой, исправили UB в самом безопасном в кавычка языке, а откуда же взялось UB если чудо компилятор все проверяет или компилятор пишут люди которые допускают ошибки и компилятор допускает ошибки? Тогда где безопамность?
Ответить | Правка | Наверх | Cообщить модератору

241. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (235), 23-Авг-26, 22:35 
> Ой, исправили UB в самом безопасном в кавычка языке, а откуда же
> взялось UB если чудо компилятор все проверяет или компилятор пишут люди

Интересно, как (и чем) нужно читать новость, чтобы углядеть там исправление UB?

Ответить | Правка | Наверх | Cообщить модератору

242. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +2 +/
Сообщение от Markx (?), 23-Авг-26, 23:36 
Цитирую "Взаимодействие между обвязкой ManuallyDrop и умным указателем Box теперь не приводит к неопределённому поведению."

Ну например вот так

Ответить | Правка | Наверх | Cообщить модератору

243. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (120), 24-Авг-26, 10:07 
Зато банальное сложение теперь приводит к UB :)
Ответить | Правка | Наверх | Cообщить модератору

245. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +1 +/
Сообщение от Markx (?), 24-Авг-26, 10:15 
Самый лулз состоит в том, что целочисленное переполение в C++ называется UB, а в расте это поведение задокументировано как переполнение и как бы UB уже не является, хотя это как было UB так и осталось, так как результат операции непредсказуем(недетерминированный)
Ответить | Правка | Наверх | Cообщить модератору

253. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (253), 24-Авг-26, 16:40 
>Ценой применения алгебраических методов является недетерминированность результатов вычисления, которые могут меняться в пределах погрешности

Вот эта фраза вообще лишняя. Она не верная и вводит людей в заблуждение. Чтобы понять, что может измениться в вычислениях, надо знать как устроено IEEE-754

Ответить | Правка | Наверх | Cообщить модератору

254. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (253), 24-Авг-26, 18:22 
про недетерминированность - верно, но многим непонятно что это означает, про в пределах погрешности - не верно
Ответить | Правка | Наверх | Cообщить модератору

255. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (253), 24-Авг-26, 18:31 
если для  для одного выражения, то "в пределах погрешности" - тоже верно
Ответить | Правка | Наверх | Cообщить модератору

256. "Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитыва..."  +/
Сообщение от Аноним (253), 24-Авг-26, 18:33 
фраза ввела меня в заблуждение
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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