The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Пятая редакция патчей для ядра Linux с поддержкой языка Rust , opennews (??), 13-Фев-22, (0) [смотреть все]

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


16. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +2 +/
Сообщение от Аноним (4), 13-Фев-22, 12:35 
Нет, просто некоторые из них позволяет. Но не все. Также как языки со сборкой мусора. Но не больше них.
Ответить | Правка | Наверх | Cообщить модератору

23. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  –3 +/
Сообщение от Самокатофил (?), 13-Фев-22, 12:41 
>Нет, просто некоторые из них позволяет. Но не все.

И провоцируют другие уязвимости.

>Также как языки со сборкой мусора. Но не больше них.

На языках с gc удобно писать, в отличие от. Там не ты выполняешь роль gc, как в расте. Потому что занимаясь этой ненужной работой, ты попутаешь лайфтаймы и допустишь use-after-free.

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

31. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +1 +/
Сообщение от Аноним (4), 13-Фев-22, 12:53 
>И провоцируют другие уязвимости.

Не провоцирует другие уязвимости. Приведите пример.

>Потому что занимаясь этой ненужной работой, ты попутаешь лайфтаймы и допустишь use-after-free.

Это не правда. Ты не можешь попутать lifetime в Rust. У тебя программа не скомпилируется.

Вся соль в том, что тебе ПРИДЕТСЯ думать о лайфтаймах в таких языках программирования как C/C++. Если ты хороший программист, и не хочешь ошибки по памяти. А тут тебе их НАДО указывать.

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

36. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  –4 +/
Сообщение от Самокатофил (?), 13-Фев-22, 13:02 
https://github.com/jeromefroe/lru-rs/issues/120
Ответить | Правка | Наверх | Cообщить модератору

48. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +2 +/
Сообщение от Аноним (4), 13-Фев-22, 13:15 
Коммит с фиксом вы так и не посмотрели, он относится к небрежной проверке unsafe кода.
https://github.com/jeromefroe/lru-rs/pull/121/commits/416a2d...

Про аффинные типы вы так и не ответили. Они не провоцируют появление других ошибок, приведите пример.

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

59. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  –4 +/
Сообщение от Самокатофил (?), 13-Фев-22, 13:28 
А, так это ты с ансейфом бегаешь еще с прошлых тредов? Предупреждать надо.

> Про аффинные типы вы так и не ответили.

Ответил. Просто ты как обычно в глоза долбешсо. :-D

Да и кстати, аффиные типы ток в расте есть?

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

69. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +5 +/
Сообщение от др. Аноним (?), 13-Фев-22, 13:45 
> А, так это ты с ансейфом бегаешь еще с прошлых тредов? Предупреждать надо.

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

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

121. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +1 +/
Сообщение от Урри (ok), 13-Фев-22, 15:39 
- Раст полностью заменяет С, он не допускает ошибок работы с памятью!
- Ну вот же, допускает.
- Это ансейф!!11
- Так сделайте без ансейфа, чтобы не было ошибок с памятью.
- Эммм, мммм, ммммм.
Ответить | Правка | К родителю #48 | Наверх | Cообщить модератору

408. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Аноним (4), 15-Фев-22, 12:45 
Проект где требуется скорость будет в проценте строк кода писать unsafe, проект где требуется безопасность сможет обойтись без unsafe. Это ваш выбор.
Ответить | Правка | Наверх | Cообщить модератору

420. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Урри (ok), 15-Фев-22, 15:53 
И все эти проекты никак не смогут обойтись без регэкспоподобного говносинтаксиса и встроенных прямо в компилятор говнотулзеней.

> Это ваш выбор.

Мой выбор там, где требуется скорость, использовать С или С++. А там, где требуется безопасность, использовать джаву/шарп/с++.

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

Так что мой выбор - не использовать гoвнoязык. С чем себя я и поздравляю.

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

429. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Прохожий (??), 16-Фев-22, 02:16 
>И все эти проекты никак не смогут обойтись без регэкспоподобного говносинтаксиса

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

>встроенных прямо в компилятор говнотулзеней.

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


> И даже при этом работать. И даже при этом оставаться читабельным и поддерживаемым.

Через пень-колоду с сегфолтами и и труднонаходимыми багами в связи с UB?
Засунь свои программы куда подальше с такими "фичами".

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

443. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Урри (ok), 16-Фев-22, 11:15 
Ты тупой, да?

Я ответил, причем отвечал раз 15 уже за полтора года растофанатизма на опеннете - выкинул бы все на помойку и сделал С с борроу чекером. Это если(!) бы я делал новый раст.
А так я считаю, что он банально не нужен.

> Через пень-колоду с сегфолтами и и труднонаходимыми багами в связи с UB?

Через пень-колоду с сегфолтами и и труднонаходимыми багами в связи с unsafe?
Муа-ха-ха-ха.

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

83. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +1 +/
Сообщение от freecoderemail (ok), 13-Фев-22, 14:07 
В данном примере имеется структура Iter<'a, ..> для которой задан лайфтайм. То есть, это ссылочная структура. Но среди ее полей нет растовых ссылок, а есть сырые указатели. Это значит, во-первых, что компилятор не будет отслеживать лайфтаймы автоматически для этих полей (сырые указатели не имеют лайфтаймов), а во-вторых, использование данных полей возможно только через unsafe (разыменование сырого указателя - это небезопасная операция в Rust).

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

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

39. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Самокатофил (?), 13-Фев-22, 13:07 
> Вся соль в том, что тебе ПРИДЕТСЯ думать о лайфтаймах в таких языках программирования как C/C++.

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

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

53. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Аноним (4), 13-Фев-22, 13:20 
>а не мотаться по вашим крейтам

Rust это не только крейты.

" В дополнение сборщику  проекта (cargo build) и линтеру (cargo clippy), вы получаете Искаропки  Работает™ систему документации API (cargo doc), форматировщик кода  (cargo fmt) с выработанными сообществом предустановками стиля, и  замечательно интегрированным стандартным фреймворком для автоматического  тестирования (Аннотация #[test] чтобы указать что функция является  юнит-тестом, папка "tests" для интеграционных тестов, любые кусочки кода  в вашей документации будут, по-умолчанию, запущены как тесты  документации, для проверки их корректности на текущей кодовой базе и для  уменьшения количества тестов, которые вам требуется написать) "

>А безопасность оплатит бизнес,

На этом дискуссию можно и закрывать.

>Если не нужно -- так я и не заплатил за это страданиями на расте.

Поскольку Rust (со стандартными библиотеками и крейтами) является скорее заменой C++ а не Си, я с уверенностью заявляю что он проще в освоении чем С++, проще в использовании, и гораздо безопаснее.

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

66. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  –1 +/
Сообщение от Самокатофил (?), 13-Фев-22, 13:40 
>Rust это не только крейты.

Так в крейтах нифига нет. Это ж хелловорды недотестированные с кучей уядвимостей. Не только крейты, лол. :-D

> " В дополнение сборщику  проекта (cargo build) и линтеру (cargo clippy),

Исусья тряпка! Привязанный к одному маргинальному языку сборщик и линтер хелловордов. Выкидываю cmake/makefiles. Джайте джва!

> cargo doc

Исусья тряпка, привязанный к одному маргинальному языку аналог doxygen.

> форматировщик кода  (cargo fmt)

И если дядя решил ставить фигурную скобку на строке с блоком -- ты тоже привыкнешь. :-D

> Аннотация #[test]

Видели. Смешивание тестов и кода. Прекрасно, ящетаю.

> На этом дискуссию можно и закрывать.

Ой всё?!)) Растаман, возможно для тебя будет открытием, но за всё надо платить.

> я с уверенностью заявляю

бульк :-D

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

73. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  –1 +/
Сообщение от Аноним (4), 13-Фев-22, 13:53 
Поставляемый в комплекте не значит хуже чем сторонний. Хоть и сторонние инструменты в Rust подключить сложности не возникнет.

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

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

>Видели. Смешивание тестов и кода. Прекрасно, ящетаю.

В моем комменте же указана возможность создания интеграционных тестов. Будьте внимательней.

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

82. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  –1 +/
Сообщение от Самокатофил (?), 13-Фев-22, 14:07 
>Поставляемый в комплекте не значит хуже чем сторонний

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

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

Да учиться вообще неприятно. Больно. Да и зачем, когда можно не учиться. Или вы предлагаете что-то одно якобы, и потом учиться не придется? Дык та же джава показала что это ложь. Растаманы перепишут потом всё, и опять учить придётся недоделанное, недоработанное, кое-как работающее.

> В моем комменте же указана возможность создания интеграционных тестов.

Что это меняет? Будьте внимательнее.

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

103. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  –1 +/
Сообщение от Аноним (4), 13-Фев-22, 14:47 
>Но оказывается хуже. Как функционально, так и тем что прибит гвоздями к одному маргинальному языку.

В Rust функционально-полная система сборки. Помимо множества встроенных и общепринятых подсистем https://doc.rust-lang.org/cargo/ Существуют build-скрипты написанные на самом Rust, вызываемые сборщиком. Что гораздо лучше чем учить непонятный новый язык, не относящийся никак к программированию а только лишь сборке.

К тому же к системе сборки можно подключать самописные модули, что с успехом применяется. Они устанавливаются в системе одной командной. Вот неполный список https://old.reddit.com/r/rust/comments/mifrjj/what_extra_dev.../

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

>Да учиться вообще неприятно. Больно.

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

>Что это меняет? Будьте внимательнее.

Ниже ответил. Сразу не понял в чем ваша претензия состоит.

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

111. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Самокатофил (?), 13-Фев-22, 15:14 
Маркетинговый буллщит. Спасибо, но переписываться с копипастой из брошюрок -- ту мач. Полнимаю лапки вверх. Ты снова меня одолел.
Ответить | Правка | Наверх | Cообщить модератору

430. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Прохожий (??), 16-Фев-22, 02:30 
>Маркетинговый буллщит

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

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

435. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Самокатофил (?), 16-Фев-22, 04:48 
>>Маркетинговый буллщит
> Это прямая экономия денег заказчика. Которые ты, как и всякий подобный тебе
> "конструктор из говнa и палок" считать не умеешь - "бизнес оплатит",
> ага.

Вот и сэкономили: мозилла отправила растаманек на мороз. Бизнес оплатил.  :-D

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

89. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +2 +/
Сообщение от Аноним (4), 13-Фев-22, 14:18 
>Видели. Смешивание тестов и кода. Прекрасно, ящетаю.

Это не совсем так. Unit-тесты пишутся в конце файла и находятся в отдельном модуле tests. Код программы не может получить к ним доступ. (Только если убрать аннотации, и сделать функцию pub'личной)

https://play.rust-lang.org/?version=stable&mode=debug&editio...

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

65. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  –1 +/
Сообщение от Аноним (4), 13-Фев-22, 13:34 
>А безопасность оплатит бизнес,

Возможно бизнес выберет не переплачивать за безопасность, а получить разработчика на Rust если в проект входит требование повышенной безопасности. Мне лично кажется это единственная надежда этого языка, там где SPARK это оверкилл и нужно "что-то похожее на кресты" чтобы в крайнем случае крестовика за месяц переучить (они схватывают концепции за месяц максимум, потому что Rust под них написан в основном)

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

123. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +1 +/
Сообщение от Урри (ok), 13-Фев-22, 15:44 
> получить разработчика на Rust если в проект входит требование повышенной безопасности

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

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

189. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Самокатофил (?), 13-Фев-22, 18:20 
>> получить разработчика на Rust если в проект входит требование повышенной безопасности
> И через полгода получит неподдерживаемый кусок непонятно чего с кучей ансейфов и
> собирающийся только версией компилятора х.у, которой уже нигде нет и собрать
> которую тоже невозможно, ибо для этого нужна версия компилятора а.б, которой
> уже нигде нет и собрать которую тоже невозможно, ибо для этого
> нужна версия компилятора ...

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

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

337. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Урри (ok), 14-Фев-22, 12:55 
И мои некоторые тоже.

Забавно, неужели у людей так сильно подгорает от правды, что они начинают крысятничать - лишь бы не развиваться?

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

341. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +1 +/
Сообщение от Самокатофил (?), 14-Фев-22, 13:11 
> И мои некоторые тоже.
> Забавно, неужели у людей так сильно подгорает от правды, что они начинают
> крысятничать - лишь бы не развиваться?

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

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

379. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Урри (ok), 14-Фев-22, 19:09 
+
Ответить | Правка | Наверх | Cообщить модератору

431. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Прохожий (??), 16-Фев-22, 02:39 
Уж конечно куда лучше получить такой же не поддерживаемый кусок непонятно чего с сегфолтами и UB на плюсах, которые никто не знает досконально, поэтому тащит в код то, что удалось освоить за последние десять лет безвозвратно потерянной жизни, потраченной на изучение этих самых Плюсов.
И эти люди что-то рассказывают об эффективности программирования.
Ответить | Правка | К родителю #123 | Наверх | Cообщить модератору

436. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Самокатофил (?), 16-Фев-22, 04:51 
> Уж конечно куда лучше получить такой же не поддерживаемый кусок непонятно чего
> с сегфолтами и UB на плюсах, которые никто не знает досконально,

Ты раст что ли знаешь досконально, растамань?)))

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

Растамань, без плюсов нет вашего раста. Не гадь там где ешь.

> И эти люди что-то рассказывают об эффективности программирования.

кто-то же должен.

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

441. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Урри (ok), 16-Фев-22, 11:04 
Не, ну то что вы на любом языке напишете неподдерживаемый кусок непонятно чего я даже не сомневаюсь.

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

> И эти люди что-то рассказывают об эффективности программирования.

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

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

Я уже несколько раз вижу аргумент "С++ настолько сложен, что его невозможно изучить" и в очередной раз делаю вывод: растофанатики банальные безмозглые обезьяны. Если человек не может выучить С++ в необходимом для полноценной работы объеме, что является довольно простой задачей, то ему не место в профессии. Ему место в кочегарке, например. И никакие рекламирующие себя как волшебную палочку расты ему не помогут.

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

49. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +1 +/
Сообщение от keydon (ok), 13-Фев-22, 13:15 
> Вся соль в том, что тебе ПРИДЕТСЯ думать о лайфтаймах в таких
> языках программирования как C/C++.

Сколько вы еще С++99 будете вспоминать? Уже 23 года прошло. В современных плюсах есть RAII.

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

58. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  –3 +/
Сообщение от Аноним (4), 13-Фев-22, 13:27 
Даже такое простое и базовое RAII как unique_ptr не позволяет избежать оверхеда в рантайме. https://www.youtube.com/watch?t=1061&v=rHIkrotSwcc
Не говоря уже о том, что грамотное применение этой "нашлепки" на язык делает код длиннее и запутанней.
Ответить | Правка | Наверх | Cообщить модератору

127. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +2 +/
Сообщение от Урри (ok), 13-Фев-22, 15:59 
В ролике довольно глупое выступление от человека, который понимая ассемблер совершенно не в курсе как работают современные микропроцессоры.

Детально объяснять почему глупое будет довольно долго ибо очень много важных нюансов, но я уложусь в пару коротких тезисов. Эти тезисы полностью нивелируют оверхед от единичного "jne" (или je+jmp в ситуации далекого адреса перехода).

1. (и самое важное) спекулятивное выполнение,
2. задержки в доступе к памяти,
3. предсказатель переходов.

Эти три пункта позволяют unique_ptr внести возможную задержку в код выполнения программы на уровне 0,00000001%. В то время как даже обычное переключение задачи вносит возможную задержку в 0,001%. А примитивнейший доступ к не выравненному адресу (например, при поиска в строке) вносит возможную задержку в 0,1%.

Так что де-факто unique_ptr добавляет ровно 0.0% (ноль целых ноль десятых процентов) оверхеда.

--
Желающие проверить лично берут и используют "sudo perf stat хелловорлд-с(и-без)-смарт-поинтерами",
желающие глубоко проанализировать - "perf --help".

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

409. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Аноним (4), 15-Фев-22, 12:58 
> "jne" (или je+jmp

Нет. Это лишняя mov (регистровая) инструкция. Можете сами сравнить https://rust.godbolt.org/z/Ed69aKqah

>Желающие проверить лично берут и используют "sudo perf stat хелловорлд-с(и-без)-смарт-поинтерами",

Я лично проверять не буду, доверюсь автору видео благо он известный специалист по оптимизациям https://twitter.com/chandlerc1024
Но если вы хотите, можете сами замерить, доказать свою правоту ему в Twitter, указать на его ошибку, получить свою долю славы. Я бы тоже с интересом посмотрел на бенчмарк.

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

419. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +1 +/
Сообщение от Урри (ok), 15-Фев-22, 15:29 
>> "jne" (или je+jmp
> Нет. Это лишняя mov (регистровая) инструкция. Можете сами сравнить https://rust.godbolt.org/z/Ed69aKqah

ты тоже "человек, который понимая ассемблер совершенно не в курсе как работают современные микропроцессоры." (c) Урри

>>Желающие проверить лично берут и используют "sudo perf stat хелловорлд-с(и-без)-смарт-поинтерами",
> Я лично проверять не буду, доверюсь автору видео благо он известный специалист
> по оптимизациям

Так тяжело потратить 5 минут на пару элементарнейших движений? Или банально не умеешь?
Небось еще и поклонник раста, я угадал?

> доверюсь автору видео благо он известный специалист по оптимизациям https://twitter.com/chandlerc1024

Ээээ. И что я там должен увидеть? Какие-то вообще не относящиеся к оптимизации бла-бла-бла?
"QT is an image of a long, largely on-point critique of how Calendly ends up asserting (somewhat viciously) the social capital power differential between two people." ?????

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

> Я бы тоже с интересом посмотрел на бенчмарк.

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

Ну или можешь все-таки засунуть в нее хоть какой-то не относящийся к unique_ptr код и насладится вообще сполна.
https://pastebin.com/PrY2H9qB

Самое вкусное внизу - когда на одном и том же коде в совершенно идентичных условиях то "63 842 579 962 cycles", то "63 179 246 976".

Угадай, какая пара этих значений принадлежит uniq_ptr, а какая пара просто new:
17 844,46 msec task-clock
17 917,53 msec task-clock
17 986,22 msec task-clock
18 921,22 msec task-clock

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

422. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  –1 +/
Сообщение от Аноним (4), 15-Фев-22, 16:52 
Вообще, в видео показано что генерируется лишняя инструкция в моменты использования unique_ptr, а не просто при создании его и уничтожении (как в вашем примере).

Он дальше в видео объясняет это существованием необходимости поддерживать различные типы соглашений о вызовах. Таким вот образом легаси замедляет современные программы на С++.

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

426. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +1 +/
Сообщение от Урри (ok), 16-Фев-22, 00:24 
Аноним. Вы что, рассчитывали, что я засяду тратить пару часов времени чтобы полностью прослушать выступление, законспектировать его, разобрать на части, для каждой сделать пример и дать вам проигнорировать или обосрать (что вы прямо сечас и сделали)? Нет, у меня даже в мыслях этого не было.

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

> Таким вот образом легаси замедляет современные программы на С++.

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

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

149. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +3 +/
Сообщение от keydon (ok), 13-Фев-22, 16:48 
> Даже такое простое и базовое RAII как unique_ptr не позволяет избежать оверхеда в рантайме. https://www.youtube.com/watch?t=1061&v=rHIkrotSwcc

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

> Не говоря уже о том, что грамотное применение этой "нашлепки" на язык делает код длиннее и запутанней.

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

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

410. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  –1 +/
Сообщение от Аноним (4), 15-Фев-22, 13:14 
>Аргумент годился бы если сравнивали с питоном. Да даже гребанная джава и та почище будет.

Не надо сравнивать с языками со сборкой мусора. Тем более с динамически типизированными языками. Это идет против основной парадигмы Rust, С++, Ada/SPARK - упрощения синтаксису не в ущерб производительности.
Опять же хочу спросить теперь у вас что конкретно вы бы убрали / поменяли в Rust? Наверно ни в одном ЯП не было столько обсуждения с сообществом, и столько копий сломано как при обсуждении синтаксиса Rust перед имплементацией. Этот синтаксис реально выстрадали.

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

421. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Урри (ok), 15-Фев-22, 16:01 
> Наверно ни в одном ЯП не было
> столько обсуждения с сообществом, и столько копий сломано как при обсуждении
> синтаксиса Rust перед имплементацией. Этот синтаксис реально выстрадали.

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

> Этот синтаксис реально выстрадали.

А сколько страданий еще впереди...

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

432. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Прохожий (??), 16-Фев-22, 02:53 
>Язык надо сначала хорошенько обдумать и только после этого реализовывать.

Это плюсы-то с их двумя десятками способов инициализации хорошо продуманы? Или та же Сишка с l-value, r-value выражениями?

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

434. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Аноним (-), 16-Фев-22, 04:09 
>>Язык надо сначала хорошенько обдумать и только после этого реализовывать.
> Это плюсы-то с их двумя десятками способов инициализации хорошо продуманы? Или та
> же Сишка с l-value, r-value выражениями?

Это стандартна-обтекаемая хрень^W банальность уровня "чтобы писать код без ошибок, нужно просто писать код без ошибок!", выдаваемая местными теоретиками за откровение свыше.

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

440. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Урри (ok), 16-Фев-22, 10:54 
Да.
Ответить | Правка | К родителю #432 | Наверх | Cообщить модератору

264. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  –1 +/
Сообщение от Аноним (261), 13-Фев-22, 23:58 
Хоспаде, кого же сейчас волнует оверхед?
Ответить | Правка | К родителю #58 | Наверх | Cообщить модератору

61. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  –1 +/
Сообщение от Анонн (?), 13-Фев-22, 13:30 
А причем тут с++? Новость по ядро и си. Для си RAII только в виде поделок васянов и в ядре его нет.
Ответить | Правка | К родителю #49 | Наверх | Cообщить модератору

153. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  –2 +/
Сообщение от keydon (ok), 13-Фев-22, 16:54 
> А причем тут с++? Новость по ядро и си. Для си RAII
> только в виде поделок васянов и в ядре его нет.

¯\_(ツ)_/¯

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

106. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  –1 +/
Сообщение от Аноним (113), 13-Фев-22, 15:04 
>> Вся соль в том, что тебе ПРИДЕТСЯ думать о лайфтаймах в таких
> Сколько вы еще С++99 будете вспоминать? Уже 23 года прошло. В современных плюсах есть RAII.

если для тебя лайфтаймы и RAII это одно и тоже, то ой...

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

158. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +4 +/
Сообщение от keydon (ok), 13-Фев-22, 17:01 
> если для тебя лайфтаймы и RAII это одно и тоже, то ой...

Оу, люблю такие комментарии. В духе "если вы не знаете в чем разница, мне вас жаль" или "по вашим комментариям понятно что вы не способны уловить суть, не буду тратить на вас время".
Прошу вас, маэстро, ваш выход! Раскройте миру тайну, чем отличаются два подхода с одинаковой функциональностью, явите нам свой гений! Сделайте это не ради меня, не ради себя, а ради человечества которое жаждет узнать истину!

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

374. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  –1 +/
Сообщение от Sin2x (ok), 14-Фев-22, 17:12 
В чистых сях тоже есть RAII, если использовать экстеншн от gcc.
Ответить | Правка | К родителю #49 | Наверх | Cообщить модератору

376. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Аноним (113), 14-Фев-22, 17:50 
>В чистых сях тоже есть RAII, если использовать экстеншн от gcc.

так всетаки в "чистых" или таки если "использовать экстеншн от gcc"?

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

411. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Аноним (4), 15-Фев-22, 13:26 
RAII не предотвращает от aliasing, писали что Chrome от этого сильно страдал. Особенно от use-after-free багов когда некоторые части кода могут иметь указатели на уже освобожденную память. В Rust же память не может быть освобождена пока имеется хоть одна внешняя ссылка на нее. Это проверяется либо во время компиляции borrow-checker'ом. Либо на стадии исполнения при явном использовании программистом подсчета ссылок.

Ни юнит-тесты (сотни тысяч строк тестов), ни ассерты, ни санитайзеры по видимости не могут избавить Chrome, Firefox от больше чем сотни багов по работе с памятью в год.

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

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

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




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

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