Профиль: Аноним (вход | регистрация) не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. Сообщение от Аноним (1), 20-Авг-26, 23:38   +2 +/
зато нету use-after-free
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #5, #34

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

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

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

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

4. Сообщение от DEF (?), 21-Авг-26, 00:01   +/
А где новости про Bun 1.4?
Ответить | Правка | Наверх | Cообщить модератору

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #9, #10, #12

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

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

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

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

Вот что значит cargo культ.

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

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

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

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

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

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

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

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

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

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

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

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

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

18. Сообщение от Аноним (18), 21-Авг-26, 00:57   +/
Будем рады услышать твои решения проблемы dependency chain.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #38, #49, #54

19. Сообщение от Аноним (16), 21-Авг-26, 00:57   +/
cargo audit . есть же
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #20

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

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

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

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

24. Сообщение от Аноним (23), 21-Авг-26, 01:16   +/
Макaки. Вместо того чтобы написать свой метод в 10 строк, тянут чужие пакеты.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11

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

26. Сообщение от Аноним (26), 21-Авг-26, 01:20   +/
какой?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23

27. Сообщение от Норм (?), 21-Авг-26, 01:22   +/
Кринж. Капец.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #30

29. Сообщение от Аноним (18), 21-Авг-26, 01:32   +1 +/
> т.е порядок 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 на уровне программы или в лучшем случае единицы трансляции, что суть бред, по г-едов устраивало. А тут сделано идеально - можно использовать точечно, явно, только там где нужно.

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28 Ответы: #33

31. Сообщение от Аноним (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ообщить модератору
Родитель: #12 Ответы: #39

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

33. Сообщение от Аноним (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ообщить модератору
Родитель: #30 Ответы: #41, #51

34. Сообщение от Сладкая булочка (?), 21-Авг-26, 01:51   +/
>  зато нету use-after-free

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

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

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

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

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

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

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

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

39. Сообщение от Аноним (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ообщить модератору
Родитель: #31 Ответы: #44

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33 Ответы: #47

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #53, #56

43. Сообщение от Аноним (18), 21-Авг-26, 02:13   +/
unsafe же
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35

44. Сообщение от Аноним (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ообщить модератору
Родитель: #39 Ответы: #48

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

46. Сообщение от Аноним (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ообщить модератору

47. Сообщение от Аноним (7), 21-Авг-26, 02:24   +/
> Нет, недетерминированный - это недетерминированный.

:) серьезно?

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #41 Ответы: #58

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

49. Сообщение от Пример (?), 21-Авг-26, 02:32   +/
No nested dependencies - no problems.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18

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

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #55

53. Сообщение от Гнилье (?), 21-Авг-26, 03:00   +/
>Или может репозитории с модерацией

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

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

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

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

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

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

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

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

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


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

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

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

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

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

58. Сообщение от warlock66613email (ok), 21-Авг-26, 03:06   +/
Сложение чисел с плавающей точкой коммутативно, но неассоциативно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47

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

60. Сообщение от Аноним (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ообщить модератору
Родитель: #48


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

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




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

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