URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 131335
[ Назад ]

Исходное сообщение
"Выпуск Rust 1.72. Решение поставлять макрос  serde_derive только в скомпилированном виде"

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

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


Содержание

Сообщения в этом обсуждении
"Выпуск Rust 1.72. Решение поставлять макрос  serde_derive то..."
Отправлено Аноним , 24-Авг-23 21:52 
Ни на чём этот язык не сфокусирован. Обычное шило на мыло.

"Выпуск Rust 1.72. Решение поставлять макрос  serde_derive то..."
Отправлено Иваня , 25-Авг-23 01:54 
Потому я выбрал Golang для прототипирования и C++ для продакшена.

"Выпуск Rust 1.72. Решение поставлять макрос  serde_derive то..."
Отправлено An2 , 25-Авг-23 02:25 
Значительно ли повысилась производительность и уменьшилось потребление памяти?

"Выпуск Rust 1.72. Решение поставлять макрос  serde_derive то..."
Отправлено Аноним , 25-Авг-23 03:31 
>Golang для прототипирования

А почему именно Го, а не python?


"Выпуск Rust 1.72. Решение поставлять макрос  serde_derive то..."
Отправлено Аноним , 25-Авг-23 04:31 
Потому что Python уже выбрал я, пришлось из оставшихся вариантов выбирать

"Выпуск Rust 1.72. Решение поставлять макрос  serde_derive то..."
Отправлено penetrator , 25-Авг-23 05:36 
и то УГ и то УГ, наваять на коленке что-то сойдет, но называть это "прототипированием" я бы не стал

"Выпуск Rust 1.72. Решение поставлять макрос  serde_derive то..."
Отправлено Аноним , 25-Авг-23 09:23 
Потому что у Python мерзкий синтаксис.

"Выпуск Rust 1.72. Решение поставлять макрос  serde_derive то..."
Отправлено Пряник , 25-Авг-23 09:41 
Попался криворукий.

"Выпуск Rust 1.72. Решение поставлять макрос  serde_derive то..."
Отправлено Аноним , 25-Авг-23 09:57 
Ну криворукий он или не криворукий, но мне помнится было очень весело когда правил программу на Питоне, и в ней были отступы табами, а в другом коде который я скачивал и добавлял - пробелами...

"Выпуск Rust 1.72. Решение поставлять макрос  serde_derive то..."
Отправлено Аноним , 25-Авг-23 10:20 
Такого уже лет 10 как не встретишь. А то и больше

"Выпуск Rust 1.72. Решение поставлять макрос  serde_derive то..."
Отправлено User , 25-Авг-23 11:01 
А я вот минифицированный js как-то раз на лету правил - тоже то ещё приключение было. Далеко идущие выводы из этого факта делать уже можно?

"Выпуск Rust 1.72. Решение поставлять макрос  serde_derive то..."
Отправлено Аноним , 25-Авг-23 13:40 
Это тут при чём? Форматирование блоков кода отступами в Питоне встроенное и принудительное, от него никуда не денешься. А минифицировать/обфусцировать код можно на любом языке, тут язык не при делах.

"Выпуск Rust 1.72. Решение поставлять макрос  serde_derive то..."
Отправлено User , 25-Авг-23 14:05 
При том, что при форматировании дупой - любой язык становится излишне увлекательным.

"Выпуск Rust 1.72. Решение поставлять макрос  serde_derive то..."
Отправлено Аноним , 25-Авг-23 15:04 
Твой редактор кода не умеет в замену табов на пробелы?

"Выпуск Rust 1.72. Решение поставлять макрос  serde_derive то..."
Отправлено Пряник , 29-Авг-23 12:48 
И в чём трудность поменять везде на 4 пробела? В редакторе замена текста не работает?

"Выпуск Rust 1.72. Решение поставлять макрос  serde_derive то..."
Отправлено pin , 24-Авг-23 21:53 
Дорастаманились.

"Выпуск Rust 1.72. Решение поставлять макрос  serde_derive то..."
Отправлено Аноним , 24-Авг-23 21:56 
От былой безопастности не осталось и следа. Даже блобы норма, но при этом хозяева языка ничего не делают, да им и пофиг.

"Выпуск Rust 1.72. Решение поставлять макрос  serde_derive то..."
Отправлено pin , 24-Авг-23 22:25 
> былой безопастности

Да какой там...


"Выпуск Rust 1.72. Решение поставлять макрос  serde_derive то..."
Отправлено пох. , 24-Авг-23 23:02 
Как то ись не делают? Вот же ж - верификация и сертификация, чтоб блобы было удобнее и эффективнее поставлять всем тем пяти тыщам хайпожоров которым очередной лефтпад немедленно очень пригодился.


"Выпуск Rust 1.72. Решение поставлять макрос  serde_derive то..."
Отправлено Аноним , 25-Авг-23 13:12 
Эксперты опеннета как всегда.
Во-первых, создатели языка тут ни при чем - речь о third-party библиотеке.
Во-вторых, комьюнити это решение как раз не понравилось, огромное количество людей выразило свою неудовольствие, после чего автор библиотеки передумал и отменил публикацию бинарей.

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноним , 24-Авг-23 22:06 
ну вот и дождались!
И здесь маски сорваны, маскарад окончен...
Красота.

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноним , 25-Авг-23 08:32 
Готовьте кредитки, скоро будете ПЛАТИТЬ!

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено 1 , 25-Авг-23 09:39 
Но почему сразу кредитки ?
Может они добавят телеметрию (исключительно для безопасности) и кредитки не понадобятся.

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноним , 25-Авг-23 10:17 
Емнип, она и так есть, если не в самом компиляторе, то в тулинге. Хотя могу ошибаться, не цитируйте.

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноним , 26-Авг-23 11:57 
Не кредитки, а ЦВЦБ.

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Anonymous116723333333333 , 24-Авг-23 22:06 
Хаха, поставлять скомпилированный бинарник в пакете это, конечно, сильно. Но зато я теперь понял, что значит по-настоящему значит memory safe.

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено burjui , 25-Авг-23 01:47 
Какая связь?

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Минона , 25-Авг-23 10:14 
> поставлять скомпилированный бинарник в пакете это, конечно, сильно

Юзай генту =)


"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Tron is Whistling , 24-Авг-23 22:07 
> поставлять crate-пакет serde_derive с макросом derive только в уже скомпилированном бинарном виде. Пакет serde_derive применяется для сериализации и десериализации данных и используется в качестве зависимости в 5495 других пакетах

Любители лить в рот прямо из трубы опять предсказуемо влетели.


"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноним , 24-Авг-23 22:09 
Да в общем-то и раньше умные люди критиковали макросы.

> То есть на самом деле разбор форматной строки является не просто частью подключаемой по умолчанию библиотеки, что можно было бы предположить в случае println!, использованного в примере вывода Hello World, а и вовсе частью компилятора Rust. Сказки о невероятных удобствах и возможностях макросов, якобы позволяющих перенести в компайлтайм любое вычисление, рушатся уже на этапе написания первой программы на этом удивительном языке! Более того, с тем же успехом объяснить базовый пример можно было так, что непосредственно в языке есть конструкция вывода — и не городить огород с макросами.


"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноньимъ , 25-Авг-23 08:49 
Это бред.
Макросы не только лишь для принтлн нужны.
Это абсолютно нормально начиная с 80х годов прошлого столетия иметь полноценное метапрограммирование.

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноним , 27-Авг-23 13:09 
сишный define это не полноценное метапрограммирование.

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноньимъ , 27-Авг-23 14:26 
> сишный define это не полноценное метапрограммирование.

А сишка то тут причем?

Полноценное метапрограммирование было в Лиспе примерно всегда.


"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноним , 24-Авг-23 22:10 
А вот в сишечке такой ***** с блоками не было.

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноним , 24-Авг-23 22:12 
*блобами

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноним2 , 24-Авг-23 22:18 
Было, но скорее по причине каменного века и отсутствия интернета. А в 2023 якобы топить за безопасность но спонсироваться гуглом и мелкософтом и предлагать бинари - ну это для любителей садомазахизма

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноним , 25-Авг-23 06:43 
Да обосрались они со скоростью трансляции вот и пробуют экономить теперь на спичках/
По мн е так тупиковый язык и идея

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Ананимус , 25-Авг-23 15:07 
> Было

Кто сказал firefox?


"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноньимъ , 25-Авг-23 11:09 
У сишки и пакетного менеджера не было.

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

И в итоге сишкины либы как раз в большинстве бинарными блобами распространяются.


"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Серб , 25-Авг-23 11:36 
> И в итоге сишкины либы как раз в большинстве бинарными блобами распространяются.

Сколько там процентов у debian'а пакетов с воспроизводимыми сборками?

И на чем написаны проекты оставшихся пакетов - с не воспроизводимыми сборками?


"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено НяшМяш , 24-Авг-23 22:20 
> Мэйнтейнер проекта Serde отказался идти на компромисс и заявил, что предкомпилированная реализация макроса будет единственным вариантом поставки пакета serde_derive.

Это не так. 4 дня назад он откатил изменения: https://github.com/serde-rs/serde/releases/tag/v1.0.184 Но бугурт поднял конечно знатный, ведь самое забавное то, что заметили это случайно меинтейнеры федоры и к тому времени скомпилированный бинарник уже распространялся недели три. Это к слову о том что опенсорс смотрят миллионы глаз, да.


"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноним , 24-Авг-23 22:26 
> 4 дня назад он откатил изменения

Но осадочек остался. Теперь буду знать, что serde разрабатывают дурачки. В прямом смысле этого слова. От того, что дурачки прогнулись под дизлайками, дурачками они от этого быть не перестали.


"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено pin , 24-Авг-23 22:27 
Может наоборот, свой труд уважают?

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено An2 , 25-Авг-23 02:29 
> Это не так.

Это было именно так. Ещё к тому же он просто заткнул рот возражающим, заблокировав возможность оставлять комментарии к тому issue. Типа всё уже решено (им) окончательно, и возмущения бесполезны.


"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Прохожий , 26-Авг-23 21:41 
Было и есть. Прошлое и настоящее. Гм...

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено 12yoexpert , 25-Авг-23 10:05 
растом пользуются полтора землекопа, каким-то васянским пакетом - ещё меньше. откуда миллион глаз лишь бы ляпнуть?

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено НяшМяш , 25-Авг-23 13:01 
> растом пользуются полтора землекопа, каким-то васянским пакетом - ещё меньше. откуда миллион
> глаз лишь бы ляпнуть?

Я же не кексперт, умею интернетом пользоваться.
https://crates.io/crates/serde
https://crates.io/crates/serde_derive
500 тысяч загрузок _в день_


"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено freecoder , 25-Авг-23 13:12 
У serde_derive 172 миллиона загрузок.

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Минона , 25-Авг-23 10:23 
> Это к слову о том что опенсорс смотрят миллионы глаз, да

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


"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноним , 26-Авг-23 06:21 
А ещё лет 15 назад, пользователи Gentoo, ставили флаги для Сишечки -Wall -Werror=format-security -fPIC и патчили сорцы, слали репорты в апстрим. А сегодня вместо флага -Werror=format-security используют ржавого.

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноним , 25-Авг-23 20:05 
> случайно меинтейнеры федоры и к тому времени скомпилированный бинарник уже
> распространялся недели три. Это к слову о том что опенсорс смотрят миллионы глаз, да.

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


"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноним , 24-Авг-23 22:21 
Что нужно чтобы начать использовать безопасный язык? curl | sh, исчерпать свободное место на диске уязвимостью cargo и установить несколько бинарных блобов.

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено 12yoexpert , 25-Авг-23 10:06 
> исчерпать свободное место на диске уязвимостью cargo

я думал, выжирать место на диске - это фишка раста


"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Ananimus , 24-Авг-23 22:28 
Да все уже, откатили прекомпилированный бинарник. К чувакам пришли в багтрекер и они в итоге сдались.

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноним , 24-Авг-23 22:44 
>К чувакам пришли в багтрекер и они в итоге сдались.

То, что они откатили, еще не значит, что сдались ;)
Ну и сдача, конечно не останавливает поехавшей у них крыши - это да.


"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Ananimus , 24-Авг-23 23:13 
> Ну и сдача, конечно не останавливает поехавшей у них крыши - это да.

Драма из ничего, в опенсурсе регулярно кто-то упоротые идеи выдает. Вспомни какую дичь Ульрих творил в glibc.


"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Витюшка , 24-Авг-23 23:57 
Какую? Спрашиваю любопытства ради

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Ananimus , 25-Авг-23 00:20 
> Какую? Спрашиваю любопытства ради

Например, Ульрих решил что ему не очень интересно возиться с ARMи embedded в целом и отказывался принимать патчи. В итоге поцоны из Дебиана до 2014 года тащили свой форк elibc, который потом влили в glibc.


"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноним , 25-Авг-23 02:15 
Можно подробнее? Ссылка на архив рассылок подойдёт. А то уже часто бывало, что Ульриха гнобили за якобы бредовые поступки, а на поверку оказывалось, что парень всё правильно сделал. Да и дебианы уже светились с кривыми патчами, которые апстрим не хотел принимать (история с cdrtools в пример).

Но я не троллинга ради, мне правда интересно.


"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено An2 , 25-Авг-23 02:35 
https://snapshot.debian.org/package/eglibc/

2.9 (2009) .. 2.19 (2014). Т.е. где-то 5 лет неудобств. А то "до 2014" прозвучало, как будто неопределённо долго.

Ещё, кстати, была история с переходом на libav (форк ffmpeg):
0.6.2 (2011) .. 11.3 (2015 + длительная поддержка в stable Debian 8).

https://snapshot.debian.org/package/libav/


"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Пряник , 25-Авг-23 09:46 
Слабо тянет на дичь.

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноним , 25-Авг-23 20:12 
> Слабо тянет на дичь.

Коменты в редгадской багзиле и рассылках от этого фрика были более чем колоритные.


"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноним , 24-Авг-23 22:40 
Сабж это ад.
Нет даже так... адддище.
На роллинге еще норм, но релизный дистр - да оно или пересобирать сабж или отказываться от фокса и симанки.
Например, в дебиане 10 и 11 специально под это дело акромя древнего системного раста есть еще раст-мозилла.
Сейчас это 1.59 - а значит выше 102 фокса и полугодовалой 2.53.15 симанки не собрать...
А свежий раст-моззила просит кучу зависимостей конских и неделю на пересборку...


"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Анонин , 24-Авг-23 23:42 
> в дебиане 10 и 11 специально под это дело акромя древнего системного раста есть еще раст-мозилла.

ну а как можно иначе с таким древнем мамонтовым Г?

> неделю на пересборку

смени свой четвертый пень на что-то поадекватнее


"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноним , 25-Авг-23 00:05 
> неделю на пересборку
> смени свой четвертый пень на что-то поадекватнее

теоретик?

там же надо прежде чем llvm пересобрать и еще с 10-ок пакетов...

так что на 4-пне оно бы год собиралось, наверное...


"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Анонин , 25-Авг-23 00:07 
Конечно теоретик! Я от четвертого пня избавился еще лет 15 назад, когда корки вышли.
Хз сколько оно бы на нем собиралось, но на наверное тебе можно доверять)))

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноним , 26-Авг-23 11:20 
видимо еще и неадекват-теоретик... не смог прочитать что речь не столько о железе...

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноньимъ , 25-Авг-23 11:17 
Что за бред сумасшедшего.
Прийду домой проверю сколько оно из портов под Фрей собирается.
День там на дохлом 4хядереом бульдозере будет собираться десктоп полноценный.

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноним , 26-Авг-23 11:18 
читать не пробовали?
под 11 фрю собери и проверь как оно собирается...

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноньимъ , 26-Авг-23 15:25 
Эм, 11 фря больше не поддерживается. Инфраструктура просто отключена.
Новый софт под нее никакой не собрать. В смысле без приключений правки мейкфайлов и прочего.

Фаерфокс ничем особенным не выделяется на фоне всего остального в этом плане.

Оказывается опакетить сложное ПО с учётом всех зависимостей офигеть как не просто, вы открыли Америку конечно.


"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноним , 27-Авг-23 13:31 
Дак я как раз и писал о том, что сборка FF и SM упираются именно в сабж.
Как по самому времени пересборки, так и по ресурсам требуемым на сборку и времени на решение проблем с зависимостям.
В итоге получается быстрее и проще хромиум собрать, чем с ФФ возиться...

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноньимъ , 27-Авг-23 14:24 
> Дак я как раз и писал о том, что сборка FF и
> SM упираются именно в сабж.
> Как по самому времени пересборки, так и по ресурсам требуемым на сборку
> и времени на решение проблем с зависимостям.
> В итоге получается быстрее и проще хромиум собрать, чем с ФФ возиться...

Для сборки раста нужно:

Build dependencies:

        cmake : devel/cmake-core
        ninja : devel/ninja
        pkgconf>=1.3.0_1 : devel/pkgconf
        python3.9 : lang/python39

Library dependencies:

        libcurl.so : ftp/curl


"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено _kp , 25-Авг-23 03:00 
>>смени свой четвертый пень на что-то поадекватнее

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


"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноним , 25-Авг-23 10:27 
Смени cmake на cargo. Там все автоматически собирается без перерывов на кофе и ошибки

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено _kp , 26-Авг-23 19:37 
> Смени cmake на cargo. Там все автоматически собирается без перерывов на кофе
> и ошибки

Так речь только о сборке уже готового, пусть и свежего. А бывает что помимо мелких патчей, в худшем случае надо скестить ежа с ужом. ;)


"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено 12yoexpert , 25-Авг-23 10:07 
а в чём проблема с пересборкой? gentoo с растом и firefox на ryzen 5950x собирается за два часа

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено Аноним , 26-Авг-23 11:16 
читать не пробовали? речь не о роллинге по готовым ебилдам собрать...

"Выпуск Rust 1.72. Решение поставлять пакет serde_derive толь..."
Отправлено pashev.ru , 24-Авг-23 22:49 
Он уже сдал назад: https://github.com/serde-rs/serde/releases/tag/v1.0.184

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 24-Авг-23 23:34 
> В будущем выпуске Rust 1.76 планируется прекратить поддержку платформ Windows 7, 8 и 8.1

как самоотверженно стали закапывать...


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 07:25 
Нет, не по указке. Нет, не синдикат. У вас паранойя. Покупайте последние процессоры и последние версии ОС, иначе бог не полюбит вас.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 09:50 
Забавно что последние версии Mozilla Firefox 116.0.x, которые как бы прекратили поддержу Windows 7 и автоматически не установятся, на практике прекрасно работают в Windows 7 если их скачать и распаковать вручную

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено ALTruist_linux , 25-Авг-23 10:00 
Какой б..г то? Редмонтовский?

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено пох. , 25-Авг-23 10:42 
Переносимый язычок (с единственным и неповторимым запретом на клонирование) такой вот переносимый.
Винда, винда, еще винда но только правильная - и, вот, нате-на-лопате еще linoops (тоже далеко не любой).

Модному поколению не нужны лишние сложности при сборке, "и так сойдет!"

(и разумеется вчерашняя версия мразилы требует послезавтрашней версии компилятора - нельзя же не обмазываться вот этой еще не окончательно оформившейся под хвостом новой фичкой)


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Прохожий , 26-Авг-23 22:10 
А почему Microsoft можно прекращать поддержку Windows 8.1 (платная ОС, а разработчикам Rust (бесплатная среда разработки) - нельзя? Наверное потому, чтобы великому эксперту пох-у было что ляпнуть.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 24-Авг-23 23:48 
> требует обязательной инициализации значений переменных перед использованием

Может и безопасно, но снижает производительность.


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ananimus , 24-Авг-23 23:50 
>> требует обязательной инициализации значений переменных перед использованием
> Может и безопасно, но снижает производительность.

Говорят нам любители сишных strlen() и LIST_FOR_EACH(), ага :D


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено burjui , 25-Авг-23 01:44 
Производительность чего, чтения мусора из памяти?

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено _ , 25-Авг-23 04:13 
Ну если у тебя в памяти мусор то И ...
Но ты ведь помнишь как дебиановцы "лохов" из OpenBSD/OpenSSH поправили и проинициализировали :)
После этого пароль подбирался на простом кнопочном калькуляторе за 5 минут.
Откатили после всепланетного рофла :)
Так что же выходит - не весь мусор в памяти одинаково вреден? Представляю как растишек в этом месте "... разрывает на части!(С)" :)

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено burjui , 25-Авг-23 09:48 
> Ну если у тебя в памяти мусор

Чтение неинициализированной памяти - UB, будь то Rust или C, если за читаемым адресом действительно память, а не MMIO.

> Но ты ведь помнишь как дебиановцы "лохов" из OpenBSD/OpenSSH поправили и проинициализировали

Не помню, напомните.


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 09:53 
https://github.com/g0tmi1k/debian-ssh

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено burjui , 25-Авг-23 12:55 
Для инициализации PRNG следует использовать специально для этого предназначенные источники энтропии, и в Linux это /dev/random, а не мусор из памяти.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено _ , 26-Авг-23 17:29 
Ну дык что - пропвтчишь ssh то, покажешь лохам как надо? Или так потрепалсО и в кусты? :-)

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено burjui , 27-Авг-23 14:52 
Иди сам пропатч, чудо. Этому багу уже больше 10 лет.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 10:10 
> Чтение неинициализированной памяти - UB, будь то Rust или C

нет, расширяй кругозор

https://github.com/u-boot/u-boot/blob/291055efee4e1ae4ad0b62...


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноньимъ , 25-Авг-23 11:21 
Объясните как из приведенной ссылки следует что это не UB ?

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 11:43 
> как из приведенной ссылки следует что это не UB ?

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

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


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено morphe , 25-Авг-23 12:37 
А при чём тут железо вообще? UB это про то, что компилятор имеет право подобный код скомпилировать как угодно
https://research.swtch.com/ub#uninit

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 12:49 
> А при чём тут железо вообще?

при том что ответ был на пост про железо

> Чтение неинициализированной памяти - UB, будь то Rust или C, если за читаемым адресом действительно память, а не MMIO.

и привёл примеры где нет никакого неопределенного поведения при доступе к неинициализированной памяти "не MMIO"

https://en.wikipedia.org/wiki/Memory-mapped_I/O_and_port-map...


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ананимус , 25-Авг-23 13:22 
> и привёл примеры где нет никакого неопределенного поведения при доступе к неинициализированной памяти

Примеры чего? В стандарте написано что чтение неинициализированной переменной это UB.

Например:

int b;

if (b > 10)
    puts("опеннетчики не могут в стандарт C");
else
    puts("опеннетчики точно не могут в стандарт C");

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


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 14:16 
> Примеры чего? В стандарте написано что чтение неинициализированной переменной это UB.

примеры того что можешь подтереться стандартами и UB нет

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

для таких случаев есть volatile int b - иди подучись


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ананимус , 25-Авг-23 14:19 
> примеры того что можешь подтереться стандартами и UB нет

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

> для таких случаев есть volatile int b

То есть ты настолько настроен писать говнокод что вместо инициализации переменной будешь volatile совать?


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 14:32 
> вместо инициализации переменной будешь volatile совать?

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


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ананимус , 25-Авг-23 14:52 
> конечно если это нужно, а ты переменную в памяти которую можно только читать будешь инициализировать ?

Ветка вообще не про это.


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 15:07 
> Ветка вообще не про это.

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


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ананимус , 25-Авг-23 15:31 
> как раз про это - ты не понимаешь что часто требуется не инициализировать память, но ведь чтобы понять надо опыт программирования иметь а

Ох... это требуется в двух случаях: tight loop и общение с железом. В первом случае нет никаких чтений неинициализированной памяти (потому что это мать его UB), а второе это специальный случай с volatile.


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 27-Авг-23 10:03 
> Ох... это требуется в двух случаях: tight loop и общение с железом. В первом случае нет никаких чтений неинициализированной памяти (потому что это мать его UB), а второе это специальный случай с volatile.

в ядре Linux 80% кода это драйверы железа, т.е примерно всегда, охай дальше


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ананимус , 27-Авг-23 18:15 
Прекрасно, как код драйвера железа относится к exfat?

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 27-Авг-23 19:07 
>> в ядре Linux 80% кода это драйверы железа
> как код драйвера железа относится к exfat?

exfat по твоему к железу относится ? тебя кто-то обманул


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ананимус , 27-Авг-23 21:06 
> exfat по твоему к железу относится

Нет, я спрашиваю как exfat или device mapper относятся к железу. Потому что дыреней там из-за пердолева с неинициализированной памятью не меньше.


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 27-Авг-23 23:10 
> Нет, я спрашиваю как exfat или device mapper относятся к железу. Потому что дыреней там из-за пердолева с неинициализированной памятью не меньше.

ты знаешь что не относится к железу но всё равно спрашиваешью Это наверно как-то должно отменить факт что доступ к регистрам MMIO повсеместно через volatile, может ты считаешь что CPU програмно должен инициализировать тысячи регистров в железе а не его аппаратный сброс и это как-то поможет устранить ошибки exfat и device mapper ? Тебя кто сильно обманул.


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ананимус , 28-Авг-23 12:48 
> Это наверно как-то должно отменить факт что доступ к регистрам MMIO повсеместно через volatile

Это прекрасно, но то что доступ к MMIO через volatile не отменяет того факта что код вокруг этого volatile это капля в море и все равно специальный случай.


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ананимус , 28-Авг-23 12:51 
>> Нет, я спрашиваю как exfat или device mapper относятся к железу. Потому что дыреней там из-за пердолева с неинициализированной памятью не меньше.
> наверно как-то должно отменить факт что доступ к регистрам MMIO повсеместно
> через volatile, может ты считаешь что CPU програмно должен инициализировать тысячи
> регистров в железе а не его аппаратный сброс

Чтобы не быть голословным:

$ cd ~/src/linux/drivers/net/ethernet/intel
$ git grep -c volatile .
e1000/e1000_hw.h:11
i40e/i40e_txrx.h:1


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 28-Авг-23 15:54 
> $ cd ~/src/linux/drivers/net/ethernet/intel
> $ git grep -c volatile .

в коде драйверов кроссплатформенные readX/writeX, ioreadX/iowriteX и тд и надстройки над ними, а  implmentation defined реализации этих ф-ций в /arch

https://www.opennet.dev/openforum/vsluhforumID3/131335.html#172


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ананимус , 28-Авг-23 16:14 
> в коде драйверов кроссплатформенные readX/writeX, ioreadX/iowriteX и тд и надстройки над ними, а  implmentation defined реализации этих ф-ций в /arch

Ага. Поэтому у тебя работа с volatile спрятана в двух функциях и не торчит наружу. Прямо как ненавидимый местными поциентами unsafe :D


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 28-Авг-23 17:45 
> работа с volatile спрятана в двух функциях

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


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ананимус , 29-Авг-23 13:27 
>> работа с volatile спрятана в двух функциях
> она не спрятана - ф-ции чтения/записи с гарантией того что вызовы не
> будут переупорядочены зависит от модели памяти архитектуры на которой исполняется код,
> если не заметил кроме volatile в реализации есть ещё барьеры памяти,
> сделано так чтобы писать кроссплатформенные драйверы.

Она спрятана в функции. Прям внутри.

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

Так что на общий случай "положили массив на стек" или "создали пару переменных" наличие volatile не влияет никак.


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 29-Авг-23 16:09 
> Она спрятана в функции. Прям внутри.
> начал орать что мы ничего не понимаем

объяснил на пальцах, и да ты ничего не понимаешь

> обращение к памяти устройства это как раз-таки специальный случай

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

> переменные все-таки хорошо бы инициализировать

так их и надо инициализировать когда нужно, а когда не нужно  - не надо, до тебя такие простые вещи не доходят


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ананимус , 31-Авг-23 16:55 
> так их и надо инициализировать когда нужно, а когда не нужно  - не надо

Ты условил самую суть! Поэтому в Rust память инициализируются по умолчанию. Для тех случаев, когда не надо сделали MaybeUninit.


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено burjui , 25-Авг-23 18:01 
Хорошо, здесь вы правы, я выразился неточно: UB не сам факт чтения, и именно использование неинициализированной памяти.

(void) readl((void *) rank1_base);

Т.к. здесь данные не используются, UB нет. Впредь постараюсь быть точнее.


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 21:43 
> Т.к. здесь данные не используются, UB нет.

они могут и использоваться - буферы DMA from device, общая память IPC mailbox/msgbox в SoC из которой читаешь сообщения от асинхронной корки - пишет туда сопроцессор которым упраляешь а не твой код на CPU, это аналогично MMIO но в обычной памяти.


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Someone , 25-Авг-23 22:36 
Разве в стандарте не говорится просто об чтении?
В любом случае для LLVM чтение неинициализированной памяти кажется точно UB

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено _ , 26-Авг-23 17:38 
Тогда бы им можно было только хилоуворды(С) собирать. А им даже вёдра собирают.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Someone , 25-Авг-23 22:27 
Это UB для LLVM. Это означает что компилятор может скомпилировать этот код как ему захочется, например просто выкинуть.

Ведь записи в память не происходит, а значит и чтения тоже нет.


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 26-Авг-23 01:18 
> Это UB для LLVM. Это означает что компилятор может скомпилировать этот код как ему захочется, например просто выкинуть.

при чём тут LLVM - шланг стандарт С не признаёт и выкинет доступ к volatile ?

https://elixir.bootlin.com/u-boot/latest/source/arch/arm/inc...

https://elixir.bootlin.com/u-boot/latest/source/arch/arm/inc...


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 09:10 
Допустим, есть большой массив. Есть поток данных. Массив постепенно заполняется, по мере поступления данных. Инициализация всего массива – лишняя и ненужная трата времени, если алгоритм программы его и так весь заполнит.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Минона , 25-Авг-23 10:32 
Речь о том что после аллокации памяти под массив из него попытались что-то прочесть раньше чем записать.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 10:34 
Ну так можно и не инициализировать. Ансейф раст — всего лишь маркер, что компилятор снимает с себя полномочия по доказательству корректности и перекладывает их на разработчика (что сишка *почти везде*). Никто не запрещает помечать ансейфом вообще всё и писать почти как на сишкчке (и доказывать корректность каждого стейтмента в комментариях), но тогда лучше уж на сишечке и не страдать х-пстернёй ради х-пстерни. Либо использовать ансейф точечно и доказывать в комментах только отдельные оптимизации.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено morphe , 25-Авг-23 23:47 
> Ансейф раст — всего лишь маркер,
> что компилятор снимает с себя полномочия по доказательству корректности и перекладывает
> их на разработчика

Не верно, никаких он полномочий не перекладывает, все гарантии из safe rust там сохраняются.
Однако в unsafe{} блоке можно вызывать unsafe функции (Сторонние библиотеки например, FFI, или просто функции в которых есть unsafe, и корректность вызова которых должен доказывать пользователь), разыменовывать указатели (не путать с ссылками), обращаться с изменяемыми статичными переменными (static mut), и обращаться к полям union.
Кроме этих дополнительных _разрешений_ unsafe блок ничего не делает.


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ананимус , 25-Авг-23 13:26 
Это буквально то как работает Vec в Rust. Я понимаю что сишным пердолям сложно и они по привычке используют слайсы, но господи Иисусе, нельзя же быть НАСТОЛЬКО некомпетентными.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 26-Авг-23 09:47 
Vec – динамический массив, а я про обычный. Работа с динамической памятью может быть медленней, особенно на микроконтроллерах.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Someone , 25-Авг-23 22:39 
Для этого есть https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html. Создаешь, пишешь, используешь

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 26-Авг-23 09:56 
Здорово, но... Лишние строчки кода.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ананимус , 26-Авг-23 11:27 
Если ты боишься что это медленнее будет, то не будет, весь сахар эфемерный и уйдет после компиляции. Если ты хочешь той же семантики что у Vec, то ArrayVec.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Твайлайт Спаркл , 25-Авг-23 06:43 
Можно и неинициализированной памятью пользоваться, но это уже придётся оборачивать unsafe.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено burjui , 25-Авг-23 18:07 
Но в неё можно только писать, т.е. инициализировать. Использование неинициализированной памяти - UB, независимо от того, unsafe это или нет.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено eganru , 25-Авг-23 08:35 
В большинстве случаев нет.

В rust есть оптимизатор, который позволяет в простых случаях всё ненужное убрать.


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 10:45 
Ну, *лично я* как правило не доверяю оптимизациям, они если и работают, то как правило не до конца оптимально, для оптимизации горячего кода на уровне инструкций и циклов приходится бить компилятор по рукам, писать ансейф, а то и вовсе напрямую дёргать ллвм-интринсики. Но это только действительно горячий код и только под каждую конкретную платорму. Да, такое лучше делать на сишечке, но не всегда представляется возможным.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено eganru , 25-Авг-23 13:22 
Я пока вилами и факелом в угол не загнали стараюсь не оптимизировать код, который работает.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ананимус , 25-Авг-23 13:23 
> Ну, *лично я* как правило не доверяю оптимизациям

Собираешь с -O0?


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Someone , 25-Авг-23 22:42 
https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html

Это то что нужно знать, если уж хочется неинициализировать данные


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Вы забыли заполнить поле Name , 25-Авг-23 00:26 
В npm такое часто. Это я к тому откуда ноги растут...

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено burjui , 25-Авг-23 01:58 
Сколько бычков набежало в комменты на красную тряпочку в виде одного мейнтейнера с потёкшим чердаком... И, как назло, тот дырку заклеил. Эх, опять Rust не получилось закопать, что же такое.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 07:57 
А почему все критекуют тут раст за безопасность причем тут безопасная работа с памятью и написанный код.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 11:05 
> А почему все критекуют тут раст за безопасность причем тут безопасная работа с памятью и написанный код.

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


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноньимъ , 25-Авг-23 08:53 
Что-то я не понял прикола. В чем соль бинарников вместо исходников?
Если у меня отличная от бинарников архитектура?

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 09:43 
Кстати, да. Это ж под все архитектуры надо свои бинарники.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено пох. , 25-Авг-23 10:44 
_обе_. О каких "всех" идет речь у компилятора, который тестируют только на винде последней версии и еще...вот ?

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Прохожий , 26-Авг-23 22:25 
Чуть больше, о великий эксперт. https://doc.rust-lang.org/nightly/rustc/platform-support.html

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 31-Авг-23 13:42 
Считать научись. По ссылке буквально подтверждение, что две платформы. Варианты с разными библиотеками - это не платформы, про tier 2 даже не заикайся - они не гарантируют работоспособности.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено 1 , 25-Авг-23 09:47 
Значит тебе не нужен serde_derive

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено пох. , 25-Авг-23 10:45 
так ему и не нужен - нужен другой библиотеке, у которой он в зависимостях пятнадцатого порядка. Причем сама библиотека может быть хорошо и грамотно написанной (хотя, конечно, куда там...)


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено burjui , 25-Авг-23 09:53 
Просто автор хотел сэкономить пользователям serde время на компиляцию процедурных макросов, которые, по сути, являются плагинами компилятора. Идея интересная, только:
- У пользователя должен быть выбор, использовать прекомпилированные макросы или собирать их каждый раз с нуля (без учёта кеширования)
- Уже давно существует sccache

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 12:39 
автор (dtolnay) сделал фантастическую фигню, сделав морду кирпичом и прикрываясь жалким блеянием про скорость процедурных макросов. учитывая компетентность товарища - его просто прогнули, 99% вероятности - гугл, где он работает. в гугле такая же жалкая аргументация для пропихивания мерзких дурно пахнущих "фич"

хорошо то, что бредятину откатили, но это только пока


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено НяшМяш , 25-Авг-23 13:07 
> автор (dtolnay) сделал фантастическую фигню, сделав морду кирпичом и прикрываясь жалким
> блеянием про скорость процедурных макросов. учитывая компетентность товарища - его просто
> прогнули, 99% вероятности - гугл, где он работает. в гугле такая
> же жалкая аргументация для пропихивания мерзких дурно пахнущих "фич"
> хорошо то, что бредятину откатили, но это только пока

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


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Вы забыли заполнить поле Name , 25-Авг-23 23:55 
>> автор (dtolnay) сделал фантастическую фигню, сделав морду кирпичом и прикрываясь жалким
>> блеянием про скорость процедурных макросов. учитывая компетентность товарища - его просто
>> прогнули, 99% вероятности - гугл, где он работает. в гугле такая
>> же жалкая аргументация для пропихивания мерзких дурно пахнущих "фич"
>> хорошо то, что бредятину откатили, но это только пока
> На реддите и в других ветках на гитхабе ему нормально так по
> морде надавали. Ведь при наличии инкрементальной компиляции эта байда компилируется один
> раз и время потраченное на это в сравнении с компиляцией всего
> проекта вообще незаметно.

Санта-Барбара какая-то... Не лень вам участвовать в большой стирке?



"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено НяшМяш , 26-Авг-23 00:48 
> Санта-Барбара какая-то... Не лень вам участвовать в большой стирке?

Хоть какое-то развлечение. Не кекспертов же местных обсуждать.


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 08:53 
>Агент влияния NSA, для этого ставший мейнтейнером проекта Serde отказался идти на компромисс

Ясно.


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 09:01 
>несогласным с новой политикой разработчикам предложено создать и поддерживать собственный форк пакета.

Абсолютно правильно. Но есть немного другой вариант. Так как crates.io принадлежит Rust Software Foundation, то она может предложить мейнтейнеру serde создать свой содственный ЯП, пакетный менеджер, луна-парк и лунный модуль. А имя отжать и повесить по нему свой форк.

>даже на бросающийся в глаза перевод serde_derive в бинарную форму обратили внимание только спустя 4 недели и 12 релизов. При таком отношении профессионально обфусцированная вредоносная вставка в исходных текстах вероятно может годами оставаться незамеченной.

Я вам больое скажу, даже абсолютно не обфусцированная и абсолютно явная.


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 09:08 
Проверил в реестре зарегистрированных торговых магок США, serde там нет.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 09:40 
Раст - лучший яп

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 09:50 
Потому что он умеет безопасно работать с памятью)))

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 09:59 
Потому что он цельный в первую очередь. У языка есть четкая концепция, вокруг которой все строится. В большинстве других языков это не так. Как правило там зоопарк из финтеылюшек, подсмотренных в других яп и работает это все через какие-то костыли.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 09:59 
И американо-госбезопасно работать с сообществом.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 09:55 
Лучший по причинению страданий программисту
Если не считать Malbolge

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 10:03 
А ты писал что-то на расте или просто слышал звон и не знаешь где он? Какие же страдания у тебя вызывает раст? Заставляет тебя обробатывать возможные ошибки? Единственное, так это некоторые моменты с временем жизни ссылок могут быть не вмегда сразу очевидны. Но компилятор все разжует и в рот положет.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено eganru , 25-Авг-23 10:09 
Но компилятор все разжует и в рот положет. - в некоторых случаях лучше не знать, через какое отверстие будет выходить результат пережевывания.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 10:11 
Тебе ставят клизмы с питательным раствором?

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено 12yoexpert , 25-Авг-23 10:12 
ты код на расте хоть раз в глаза видел? если он кажется тебе нормальным - у тебя искалеченная психика, обратись к врачу

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 10:17 
Конечно видел, ведь я его пишу. И читаю код других. Так что с ним не так?

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 10:18 
https://hirrolot.github.io/posts/rust-is-hard-or-the-misery-...

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено freecoder , 25-Авг-23 14:01 
> https://hirrolot.github.io/posts/rust-is-hard-or-the-misery-...

Автор какой-то странный. Растовый аналог его гошного кода


package main

import "fmt"

type Update struct{}
type Handler func(*Update)

type Dispatcher struct {
    handlers []Handler
}

func (dp *Dispatcher) pushHandler(handler Handler) {
    dp.handlers = append(dp.handlers, handler)
}

func main() {
    dp := Dispatcher{handlers: nil}
    dp.pushHandler(func(upd *Update) {
        fmt.Println(upd)
    })
}


Будет такой код:

#[derive(Debug)]
struct Update;

type Handler = fn(&Update);

struct Dispatcher(Vec<Handler>);

impl Dispatcher {
    fn push_handler(&mut self, handler: Handler) {
        self.0.push(handler);
    }
}

fn main() {
    let mut dp = Dispatcher(vec![]);

    dp.push_handler(|upd| {
        println!("{:?}", upd);
    });
}



"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено 12yoexpert , 25-Авг-23 10:11 
для него уже есть хоть одна IDE не на джаве (включая джавускрипт)?

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 10:16 
Она появилась сразу же - Oak. Была написана на самом расте. По сути это gui  с интегрироаанным вимом. Но автор, похоже, давно забросил проект. А по сути какая IDE  тебе нужна? Я открываю емакс в терминале, потом открываю вторую вкладку в терминале и в емаксе пишу код, а во второй вкладке его запускаю. Или ты без кнопки run  жить не можешь?

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 11:10 
Qt Creator/KDevelop/Kate + https://github.com/rust-analyzer/lsp-server (жрёт очень много памяти, как и все LSP).

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 09:58 
>решив отложить переход на поставку в бинарном виде до принятия в пакетный менеджер crate изменений для полноценной поддержки верификации предкомпилированных макросов. Разработчиками Serde подготовлен RFC с предложением реализовать в Crate верификацию предкомпилированных пакетов, проводимую на сервере репозитория crates.io через сверку бинарного файла с повторяемой сборкой из исходных текстов

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

За Rust взялись серьёзно в качестве элемента кибервойны. Статическое связывание всех библиотек в случае их компрометации приведёт статическому внедрению бэкдора в весь софт, от них зависящий. Вычистить его оттуда будет на практике невозможно - это надо будет пересобрать весь софт с чистыми библиотеками. Но Rust устроен так, что это невозможно - библиотеки требуют конкретных версий зависимостей и Cargo их удовлетворяет, а есщи их поменять - то компиляция ломается чаще, чем необходимо, ибо "разработчиков" (в кавычках) на Rust приучили, что ломать API можно без последствий, нужно лишь заплатить налог в виде держания последнего nightly-компилятора, установленного из `curl | sudo`, и гигантских бинарников и долгой компиляции. Тепень фарш нельзя провернуть назад - это придётся переделать пакетный менеджер и все либы, это будет язык, не совместимый с Rust, то есть будет уже не Rust, а другой ЯП с тем же именем. Поэтому его просто не будет.

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

Далее предположим на секундочку, что ОК, ну раз необходимо - значит перепишут. Но если весь софт забэкдорен, то что мешает в бэкдор засунуть функциональность вируса, встраивающую в компилирующиеся программы этот самый бэкдор-вирус? Если у нас весь софт инфицирован, где-то потому, что написан на Rust и зависит от вредоносных зависимостей, где-то потому, что на компьютере, где происходит сборку, был установлен забэкдоренный софт, который инфицировал софт во время сборки (т.н. Ken Thompson compiler hack), то как нам получить чистую систему, на которой можно собрать чистые версии софта? Как - понятно - взять старый комп с холодного хранения, там система будет чистая. Но новый софт полностью из исходников такая система не соберёт. И даже если соберёт - в старой системе будут уязвимости, которые можно будет проъксплуатировать и залить новый бэкдор-вирус, поэтому её нельзя вообще к инету подключать.

Эту инициативу нужно давить в зародыше.

1. выкинуть разраба из Rust Software Foundation
2. отжать имя пакета на crates.io и повесить туда форк
3. начать переделывать cargo для ликвидации безответственного и развратного подхода к управлению зависимостями.

3.1 каждая зависимость (имя ящика) на всё дерево зависимостей должна быть в одном экземпляре. Вводить постепенно - через дельту в номере версии, которые считаются "одной версией", захардкоженную в cargo. То есть если в одном месте требуется 1.3.1, 1.3.2 и 1.3.5, то чтобы считалось, что при Δ=1 нужно только 1.3.2 и 1.3.5, а при Δ=3 - только 1.3.5. Дэльту увеличивать так, чтобы на каждое изменение сломался определённый малый процент библиотек на crates.io. Разрабам сломанных библиотек придётся прогнуться и изменить свои привычки. Им не впервой, прогнутся, конформаисты же.

3.2 построить workflow вокруг возможности использования предкомпилированных shared библиотек, при этом какой тип библиотек используется, shared, static или source - должно контролироваться лицом, производящим сборку.


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено freecoder , 25-Авг-23 13:32 
В любом проекте генерируется Cargo.lock файл в котором указаны все зависимости проекта. Обычно этот файл не редактируется вручную, но ничто не мешает залезть туда и поменять версии и репозитории любых зависимостей.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 13:48 
Я так и делаю, в значительном числе случаев после этого проект перестаёт компилироваться, потому что обратной совместимости в Rust просто не существует, и в языках с таким подходом к связыванию она не может и существовать. Поэтому приходится делать иначе: проходить по всей истории, править уже Cargo.toml, откатывать изменения и сливать конфликты. Это кропотливая ручная работа, которая в отсутствии системы контроля версий, работающей на уровне AST, а не строк, может целый день занять для одного проекта. А теперь представь, что это не 1 проект, а все проекты. Кто это всё будет делать? И, в гипотетических будущих условиях, когда весь софт скомпрометирован и безопасности тебе от вычистки пакетов прибавится пренебрежимо мало, зачем? Проще расслабить булки, что большинство и сделает.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 13:55 
Понимаешь, всё приятно и легко только у тех, кто сам таким не занимался, а слышал от кого-то, что так можно, и получил короткий рецепт как так делать, без перечисления всех проблем и подводных камней. Это эффектом Даннинга-Крюгера называется.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено freecoder , 25-Авг-23 14:27 
> Понимаешь, всё приятно и легко только у тех, кто сам таким не
> занимался, а слышал от кого-то, что так можно, и получил короткий
> рецепт как так делать, без перечисления всех проблем и подводных камней.
> Это эффектом Даннинга-Крюгера называется.

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


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Вы забыли заполнить поле Name , 26-Авг-23 21:03 
> Статическое связывание всех библиотек в случае их компрометации приведёт статическому внедрению бэкдора в весь софт, от них зависящий.

В плане безопасности статическое связывание как раз лучше. Один раз собрал и точно знаешь, что обновление другого пакета не добавит уязвимости в конечную программу. Крупные конторы на С++ давно все статически собирают.


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 26-Авг-23 21:30 
Конторы живущие поддержкой одного большого программного обеспечения.

Если не будешь компилировать статически, кто же будет покупать поддержку с исправлением всех дырок во всех библиотеках?


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Вы забыли заполнить поле Name , 29-Авг-23 00:06 
> Конторы живущие поддержкой одного большого программного обеспечения.
> Если не будешь компилировать статически, кто же будет покупать поддержку с исправлением
> всех дырок во всех библиотеках?

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


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 10:10 
Ещё в качестве дополнительной меры воздействия можно задействовать по алгоритм, изложенный в https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi?az=p...

1. Заходим на https://github.com/dtolnay
2. Выбираем Block or Report
3. Block user

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


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено User , 25-Авг-23 12:39 
Еще можно куданадо написать, что автор по ночам гимн России поет, портрет Путина в шкафу держит и меньшинствами не интересуется - тут-то "он поймет: вот пусть к  проекту serde со своими хотелками и обращается, может serde соизволит ему сделать персональный луна-парк и лунный модуль."

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Glenorman , 25-Авг-23 12:43 
Что-то мне это напомнило, а пару месяцев назад, не стели принимать очет об ошибке в одну библиотеку на почве национальности. Мну , аккуратно скопировал из неё  все классы ,переименовав их на букву Z , чуток потер комментарии, и поставил пару костылей , чтобы баг исправлялся только в моем частном случае , но никак не в общем... Сижу жду горения.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 13:00 
Причём тут национальность? Мы тут о человеке по его поступкам судим. Человек злоупотребил своим положением и влиянием в проекте для продвижения вредоносных изменений. Я сам - ярый сторонник бинарных пакетов, но тот способ поставки бинарного пакета, который он продвигает - это простотзаведомо небезопасно. Впрочем как и вся экосистема Rust.

Кто-то приложил своё влияние для продвижение изменения, в результате которого всем заведомо хуже становится. Тут пока полностью не прокатило, но на полшишечки-то прокатило, а значит со временем прокатит и полностью.

Но у нас тоже есть кое-какое влияние для ответки. Не такое большое, как у него, но зато нас много.


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 15:57 
> Но у нас тоже есть кое-какое влияние для ответки. Не такое большое, как у него, но зато нас много.

нет у вас ничего против корпораций кроме языка на их яичках

https://www.opennet.dev/opennews/art.shtml?num=58969


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено xsignal , 25-Авг-23 13:08 
Проприетарщина, что и требовалось доказать. И это только начало.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 16:21 
Плюсую. Далее, с бинарников они перейдут на частично несвободную лицензию.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Прохожий , 26-Авг-23 22:36 
Два эксперта не удосужились проверить, что автор уже откатил все свои хотелки.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 26-Авг-23 22:53 
> Два эксперта не удосужились проверить, что автор уже откатил все свои хотелки.

Это спасает проблему с инфраструктурой раста?

Когда большинство проектов при сборке вытаскивают последние версии зависимостей и собирают с ними?


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ананимус , 27-Авг-23 00:41 
Ну так не используй все это и пиши как на сишке все сам руками, кто тебе мешает-то.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Вы забыли заполнить поле Name , 27-Авг-23 16:39 
> Два эксперта не удосужились проверить, что автор уже откатил все свои хотелки.

Сегодня откатил, завтра не откатит, завтра он будет уже не один. Такие явления - это звонок.


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено freecoder , 25-Авг-23 13:38 
Подобные эксцессы всегда будут происходить, и раньше уже было (помянем Actix). Хорошо, что сообщество реагирует и успешно борется за свои принципы, свободу и безопасность.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 25-Авг-23 21:11 
Шаг с выбросом Вин7 это сильный шаг. То есть нет. Наоборот.

Вот представим что юзеры Вин7 хотят некий тул. Например текст редактор. И что ? На Раст теперь его не напишешь. Хахаха ! А вот на Лазарус напишешь.


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Могилла , 25-Авг-23 22:38 
Вот представим, есть неконсумерист/параноик с Windоws 7. Рекламу отключает или просто игнорит и ничего по ней не покупает, ибо денег нет. Нужно ли на такого ресурсы команды разработки браузера тратить иресурсы сервера с телеметрией? Просто дропнем Windows 7 в браузере. А потом и в Rust. Хочешь использовать современные программы - купи и современный зондокомп с Windows 11. Не готов? Ну а а зачем ты нам такой нужен, посмотрим как ты запоёшь, когда без современного смузи-софта останешься. Придётся тебе самому переписать его на C++, весь лунный модуль и весь луна-парк, вместе с посетителями.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 31-Авг-23 13:34 
Это наивный взгляд на вещи. Прецедент с прекращением поддержки старых ОС это 100% отказ от использования в системах ESR, критичных для бизнеса.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ан , 26-Авг-23 07:20 
Этот момент в Rust конечно пугает. Допустим твои клиенты пользуются Windows 7 (или Windows 10 в будущем), и тут из под тебя выдергивают стул. Или сидеть на последней работающей версии или спонсировать разработку компилятора/std. С C++ как-то все надежней, поддержка Windows XP есть в Visual Studio 2015.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 26-Авг-23 07:25 
А зачем на сайте юниксоидов ты пишешь про Виндовс? Страдай, твои проблемы! Лучше иди-ка ты на сайт вантузников.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 26-Авг-23 12:12 
Где на сайте написано что он для юниксоидов?

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ананимус , 26-Авг-23 11:41 
Грустно быть опеннетчиком. Читаем оригинал:

Currently Windows 7 and 8 are listed as Tier 1 supported platforms. However, this has not been true for a long long time. We simply do not have the testing infrastructure. And with so much software now abandoning Windows 7 and 8 (everything from Git to Go to every major browser), continuing to provide the little support that we do is only getting more difficult. There is also a lack of vendor support for these targets.

[…]

Support for Windows 7 and 8 may continue beyond these dates through the creation of new "legacy" targets for older Windows versions. Individuals or organisation(s) who can commit to providing some level of legacy testing and support should go through the normal process for creating new targets.


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ан , 26-Авг-23 19:12 
> Грустно быть опеннетчиком. Читаем оригинал:

И что там в оригинале? Ровно то что я и сказал, если захочешь поддержку Windows 7 (или Windows 10 в будущем), придется стать такой organization(s) or individual которые будут поддерживать target. Хватит ли нашей гипотетической компании бюджета на это большой вопрос.

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


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ананимус , 26-Авг-23 22:45 
На чем ты предлагаешь им тестировать свой код, если win7 не продается с конца 17го года и не поддерживается с начала 23го, лол?

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 26-Авг-23 22:56 
Ты можешь использовать виртуалку хоть с Windows NT.

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


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ананимус , 27-Авг-23 00:18 
Нет, не можешь, для тестирования тебе нужна та же система, на которой будут гонять твой код. И если ты не можешь ее купить, а вендор говорит что больше не будет ее поддерживать, то ты ее дропнешь. Как уже сделали Git, Go и прочие.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ан , 28-Авг-23 06:09 
А куда делась инфраструктура? Раньше была и вдруг резко пропала, а новую не купить?

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ананимус , 28-Авг-23 12:45 
> а новую не купить?
> Окончание продаж Windows 7: 31.10.2016

А ты догадливый!


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ан , 29-Авг-23 19:06 
Так куда пропала инфраструктура?

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ананимус , 31-Авг-23 16:51 
> Так куда пропала инфраструктура?

Её никогда и не было. Windows 7 сдохла раньше, чем они начали регулярные сборки Tier1 :D


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Прохожий , 26-Авг-23 22:39 
Кто мешает (запрещает) использовать старую версию Rust? Visual Studio 2015 сколько годков? Вот возьмёте такую же версию Rust и вперёд и с песней. Или это другое?

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ан , 28-Авг-23 06:47 
Можно, я и написал этот вариант. Но в целом теперь я думаю что C++ может выглядит если честно более жизнеспособным если проект рассчитан на работу на машинах клиентов.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ананимус , 28-Авг-23 12:46 
> Можно, я и написал этот вариант. Но в целом теперь я думаю
> что C++ может выглядит если честно более жизнеспособным если проект рассчитан
> на работу на машинах клиентов.

Нет, не выглядит, потому что VS свежих релизов тоже не поддерживает Windows 7. Так что разницы буквально никакой :D


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Ан , 29-Авг-23 19:16 
Текущий проект собирается на VS2005, VS2015, clang, gcc (разные версии). Я вот думаю можно ли так было бы сделать на rust? Наверное в каких-то пределах можно, если не будет зависимостей с crates.io.  Вроде VS2022 с трудом но ставится на Windows 7

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 29-Авг-23 12:32 
Кратко: всё устройство языка Rust и его экосистемы.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено BeLord , 28-Авг-23 09:46 
Весь софт для археологов уже есть, раз в семь-десять лет можно себе позволить менять все, а не тащить легаси веками.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено VladSh , 02-Сен-23 22:23 
Я вообще не понял, при чём тут версия ОС к языку программирования...

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено gdg , 26-Авг-23 20:25 
Zig выигрывает у сабжа примерно во всём относительно системного программирования.

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено freecoder , 27-Авг-23 13:35 
> Zig выигрывает у сабжа примерно во всём относительно системного программирования.

Сомневаюсь, но! Rust - это наследие и развитие C++, с иной философией. Поэтому его прямой конкурент - это плюсы и некоторое подмножество высокоуровневых языков (Java, Go, Pythion). Rust больше подходит для разработки прикладного софта с вкраплениями системщины или системного софта с приличной долей прикладного кода. Поэтому он сужает область выгодного использования C и Zig, но не претендует на их полную замену. В отличии от области плюсов.


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено gdg , 27-Авг-23 14:00 
>> Zig выигрывает у сабжа примерно во всём относительно системного программирования.
> Сомневаюсь, но! Rust - это наследие и развитие C++, с иной философией.
> Поэтому его прямой конкурент - это плюсы и некоторое подмножество высокоуровневых
> языков (Java, Go, Pythion). Rust больше подходит для разработки прикладного софта
> с вкраплениями системщины или системного софта с приличной долей прикладного кода.
> Поэтому он сужает область выгодного использования C и Zig, но не
> претендует на их полную замену. В отличии от области плюсов.

Где системное программирование и где плюсы. Я специально подчеркнул область применения.



"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено gdg , 27-Авг-23 14:01 
>>> Zig выигрывает у сабжа примерно во всём относительно системного программирования.
>> Сомневаюсь, но! Rust - это наследие и развитие C++, с иной философией.
>> Поэтому его прямой конкурент - это плюсы и некоторое подмножество высокоуровневых
>> языков (Java, Go, Pythion). Rust больше подходит для разработки прикладного софта
>> с вкраплениями системщины или системного софта с приличной долей прикладного кода.
>> Поэтому он сужает область выгодного использования C и Zig, но не
>> претендует на их полную замену. В отличии от области плюсов.
> Где системное программирование и где плюсы. Я специально подчеркнул область применения.

А прикладнику в 2к23 лучше писать на языке со сборкой мусора.


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено freecoder , 27-Авг-23 23:30 
> А прикладнику в 2к23 лучше писать на языке со сборкой мусора.

Прикладной софт, требовательный к производительности, в 2к23 лучше писать на безопасном языке с borrow checker.


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено gdg , 27-Авг-23 23:50 
>> А прикладнику в 2к23 лучше писать на языке со сборкой мусора.
> Прикладной софт, требовательный к производительности, в 2к23 лучше писать на безопасном
> языке с borrow checker.

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


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено freecoder , 28-Авг-23 12:10 
Комментарии для того здесь и нужны, чтобы обмениваться мнениями. Или вы что, боитесь потерять веру в свою религию? )

Ну, например - регулярные выражения. Производительность в Rust может в разы быть лучше других языков (и на порядок лучше Java и Go): https://github.com/mariomka/regex-benchmark

Или, веб серверы. В топе 10 - пять написаны на Rust: https://www.techempower.com/benchmarks/#section=data-r21&tes...

На алгоритмических задачах - и снова производительность Rust на уровне C и C++: https://benchmarksgame-team.pages.debian.net/benchmarksgame/...

Отсюда вопрос: так зачем мучиться, лепить франкенштейна - половину кода писать на Java/Go, половину на C (причём и прикладного тоже), когда можно просто взять Rust? И бонусом ещё получить типобезопасную многопоточность (Java тут вообще в сторонке курит).


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено gdg , 28-Авг-23 16:25 
>[оверквотинг удален]
> боитесь потерять веру в свою религию? )
> Ну, например - регулярные выражения. Производительность в Rust может в разы быть
> лучше других языков (и на порядок лучше Java и Go): https://github.com/mariomka/regex-benchmark
> Или, веб серверы. В топе 10 - пять написаны на Rust: https://www.techempower.com/benchmarks/#section=data-r21&tes...
> На алгоритмических задачах - и снова производительность Rust на уровне C и
> C++: https://benchmarksgame-team.pages.debian.net/benchmarksgame/...
> Отсюда вопрос: так зачем мучиться, лепить франкенштейна - половину кода писать на
> Java/Go, половину на C (причём и прикладного тоже), когда можно просто
> взять Rust? И бонусом ещё получить типобезопасную многопоточность (Java тут вообще
> в сторонке курит).

Я тоже умею натягивать сову на глобус, но с возрастом это занятие теряет свой шарм. Адьо, теоретик.


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено freecoder , 28-Авг-23 21:16 
Кроме вашего возраста, больше аргументы нет против?

"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Аноним , 31-Авг-23 13:30 
>Производительность в Rust может в разы быть лучше других языков

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


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено freecoder , 01-Сен-23 15:16 
> А может и не быть. Выборочно сформировать список бенчмарков, подтверждающих лидерство любого
> системного языка, совсем не трудно.

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


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено yet another anonymous , 28-Авг-23 22:38 
>>> Zig выигрывает у сабжа примерно во всём относительно системного программирования.
>> Сомневаюсь, но! Rust - это наследие и развитие C++, с иной философией.
>> Поэтому его прямой конкурент - это плюсы и некоторое подмножество высокоуровневых
>> языков (Java, Go, Pythion). Rust больше подходит для разработки прикладного софта
>> с вкраплениями системщины или системного софта с приличной долей прикладного кода.
>> Поэтому он сужает область выгодного использования C и Zig, но не
>> претендует на их полную замену. В отличии от области плюсов.
> Где системное программирование и где плюсы. Я специально подчеркнул область применения.

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


"Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..."
Отправлено Andrewpotam , 01-Сен-23 19:26 
Чем громче вой анонимуса, тем более очевидно что язык действительно достойный внимания. Если бы был никому не нужен, никто бы не обращал внимания.