The OpenNET Project / Index page

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



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

Оглавление

Выпуск языка программирования Rust 1.75 и unikernel Hermit 0.6.7, opennews (??), 29-Дек-23, (0) [смотреть все]

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


137. "Выпуск языка программирования Rust 1.75 и unikernel Hermit 0..."  –2 +/
Сообщение от Витюшка (?), 30-Дек-23, 02:09 
Отлично! Я тебя нашёл. Да что там освобождение мьютекса!

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

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

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

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

160. "Выпуск языка программирования Rust 1.75 и unikernel Hermit 0..."  +1 +/
Сообщение от Аноним (12), 30-Дек-23, 11:27 
Напиши такой мьютекс на "безопасном" зиге. Он же лучше и безопаснее раста, правда ведь?)
Давай, ты же такой крутой погромист. Ну и нас повеселишь заодно.
Ответить | Правка | Наверх | Cообщить модератору

195. "Выпуск языка программирования Rust 1.75 и unikernel Hermit 0..."  +/
Сообщение от Витюшка (?), 30-Дек-23, 16:52 
Так я и написал
Ответить | Правка | Наверх | Cообщить модератору

202. "Выпуск языка программирования Rust 1.75 и unikernel Hermit 0..."  +/
Сообщение от fyjy (?), 30-Дек-23, 17:11 
> Так я и написал

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

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

167. "Выпуск языка программирования Rust 1.75 и unikernel Hermit 0..."  +/
Сообщение от фнон (?), 30-Дек-23, 11:55 
Пук в лужу конечно знатный, но как троллинг унылый.

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

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

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

198. Скрыто модератором  +/
Сообщение от Витюшка (?), 30-Дек-23, 17:01 
Ответить | Правка | Наверх | Cообщить модератору

205. Скрыто модератором  +/
Сообщение от Аноним (-), 30-Дек-23, 17:16 
Ответить | Правка | Наверх | Cообщить модератору

210. Скрыто модератором  +/
Сообщение от Витюшка (?), 30-Дек-23, 17:53 
Ответить | Правка | Наверх | Cообщить модератору

211. Скрыто модератором  +/
Сообщение от Аноним (211), 30-Дек-23, 17:59 
Ответить | Правка | Наверх | Cообщить модератору

215. Скрыто модератором  +/
Сообщение от Аноним (12), 30-Дек-23, 18:02 
Ответить | Правка | К родителю #210 | Наверх | Cообщить модератору

176. "Выпуск языка программирования Rust 1.75 и unikernel Hermit 0..."  +/
Сообщение от Аноним (162), 30-Дек-23, 13:00 
Я так понимаю, все преимущества, такие как безопасность работы с памятью, zero cost абстракции, отсутствие null по сравнению с С/С++ вы игнорируете и все сводите к одному вопросу? Который, по сравнению с теми же плюсами куда проще решается на rust.

С точки зрения использования абстракций, на прикладном уровне, тут rust переиспользует модель работы с памятью и следит на уровне компиляции, что если был взят, например lock, то он обязательно будет освобожден. В том же go периодически всплывают ошибки, что забыли прописать defer для лока и такое, естественно,  потом дебажится в рантайме.

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

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

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

206. "Выпуск языка программирования Rust 1.75 и unikernel Hermit 0..."  +/
Сообщение от Витюшка (?), 30-Дек-23, 17:18 
Ясно, как обычно. Когда дело доходит до конкретного вопроса или просьбы написать 20 строк кода... программисты на Раст либо съезжают с темы, либо начинают разглагольствовать про "сводите к одному вопросу".

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

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

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

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

212. "Выпуск языка программирования Rust 1.75 и unikernel Hermit 0..."  +/
Сообщение от Аноним (211), 30-Дек-23, 18:00 
А давай!
Кидай сюда свой зигокод, а я кину на раст.
Ответить | Правка | Наверх | Cообщить модератору

218. "Выпуск языка программирования Rust 1.75 и unikernel Hermit 0..."  +/
Сообщение от Витюшка (?), 30-Дек-23, 19:48 
Наконец-то первый программист на Rust, осиливший 20 строк кода. Уважаю 💪

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

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

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

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

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

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

240. "Выпуск языка программирования Rust 1.75 и unikernel Hermit 0..."  +/
Сообщение от OpenEcho (?), 31-Дек-23, 02:50 
> Наконец-то первый программист на Rust, осиливший 20 строк кода. Уважаю 💪

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


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

239. "Выпуск языка программирования Rust 1.75 и unikernel Hermit 0..."  +/
Сообщение от OpenEcho (?), 31-Дек-23, 02:47 
> А давай!
> Кидай сюда свой зигокод, а я кину на раст.

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

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

241. "Выпуск языка программирования Rust 1.75 и unikernel Hermit 0..."  +/
Сообщение от Витюшка (?), 31-Дек-23, 10:29 
Мой вариант.
https://gist.github.com/likern/9df0d97b3551236b456716d95f282f83

Жду твоего :)

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

244. "Выпуск языка программирования Rust 1.75 и unikernel Hermit 0..."  +/
Сообщение от Аноним (12), 31-Дек-23, 18:47 
> Мой вариант.
> https://gist.github.com/likern/9df0d97b3551236b456716d95f282f83

https://github.com/k-walter/rads/blob/main/src/sync/peterson.rs


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

256. "Выпуск языка программирования Rust 1.75 и unikernel Hermit 0..."  +/
Сообщение от Витюшка (?), 01-Янв-24, 00:36 
Не знал что под личиной русского парня скрывался K. Walter.
Ответить | Правка | Наверх | Cообщить модератору

257. Скрыто модератором  +/
Сообщение от Аноним (-), 01-Янв-24, 02:40 
Ответить | Правка | Наверх | Cообщить модератору

258. "Выпуск языка программирования Rust 1.75 и unikernel Hermit 0..."  +/
Сообщение от Аноним (-), 01-Янв-24, 12:37 
Т.е. именно по коду тебе сказать не нечего?
Не то чтобы я был сильно этому удивлен... скорее это было более чем очевидно)
Кстати заметь, ни одного unsafe.
Ответить | Правка | К родителю #256 | Наверх | Cообщить модератору

259. "Выпуск языка программирования Rust 1.75 и unikernel Hermit 0..."  +/
Сообщение от Витюшка (?), 01-Янв-24, 18:52 
А что я должен должен сказать по коду? Куча синтаксического шума и никаких гарантий корректности.

Так вот возвращаемся к моему основному вопросу. КАК Rust гарантирует корректность этого кода и почему?

Или умный программист ВРУЧНУЮ проверил все инварианты и написал корректный код на небезопасном языке Rust? Как он мог этого сделать и на любом другом, например.

В Zig минимум синтаксического шума, и только по делу. Моя версия,на неё равняться не стоит. Это черновик. Там volatile уйдет, потому что я написал некорректный код (volatile в Java и C++ имеет разную семантику, т.к. я volatile ни разу в жизни и не использовал, наверное, естественно этого не знал. Нужен atomic чистый).

Но я это знаю, что ошибка, знаю какая и как исправить. А как в этом поможет Rust?

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

262. "Выпуск языка программирования Rust 1.75 и unikernel Hermit 0..."  +/
Сообщение от Аноним (-), 01-Янв-24, 22:51 
> А что я должен должен сказать по коду? Куча синтаксического шума и никаких гарантий корректности.

Что должен? Должен проверить код.
Что можешь? А ничего ты не можешь, ты же не умеешь в раст. Мог бы скачать репу и прогнать тесты.
Тесты оно проходит
test sync::peterson::tests::race_conditions ... ok
test sync::peterson::tests::sequential_works ... ok
test sync::peterson::tests::mutual_exclusion ... ok
test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 13.88s

> Так вот возвращаемся к моему основному вопросу. КАК Rust гарантирует корректность этого кода и почему?

Я тебе писал уже кучу раз в этой теме - ОТКРОЙ ДОКУ и прочитай что именно гарантирует раст.
Все что гарантируется, гарантируется автоматически.
Все что не гарантируется - доказываешь на бумажке, покрываешь тестами.

> Или умный программист ВРУЧНУЮ проверил все инварианты

и написал корректный код на безопасном языке Rust. Программист молодец!

> В Zig минимум синтаксического шума, и только по делу.

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

> Это черновик. ... я написал некорректный код ...

Черновик или нерабочий код? Если мы оба за точность терминологии, то это явно момент, который неплохо бы прояснить)))

> Но я это знаю, что ошибка, знаю какая и как исправить. А как в этом поможет Rust?

Как поможет раст исправить ошибку в Зиг коде? Даже не знаю что ответить...

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

265. "Выпуск языка программирования Rust 1.75 и unikernel Hermit 0..."  +/
Сообщение от Витюшка (?), 01-Янв-24, 23:28 
В общем по существу ответить нечего.

Вывод спора простой. Большинство программистов на Rust ничего сложного написать не могут, даже попытаться. Кидают чужие имплементации.

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

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

Вывод третий. Крутой программист и на Rust напишет хороший корректный код. Правда он его же и на С++ напишет, и на Zig.

> Что должен? Должен проверить код.

Что можешь? А ничего ты не можешь, ты же не умеешь в раст. Мог бы скачать репу и прогнать тесты.
Тесты оно проходит

Тесты написанные самим автором? Ну ты насмешил:)) Обидно что я код могу написать, а ты...или твой коллега нет?)

Ты как определил что я не могу в Rust коде разобраться?))) Сам придумал и поверил?)

> А откуда ты это знаешь, если на твой код равняться не стоит? Вдруг ты что-то забыл?

volatile убери и будет всё Ок.

> Вот ты написал все в кучу внутри структуры PetersonMutex

Ясно. Когда совсем нечего ответить начинают придираться к запятым 😄 Там не всё в кучу. Там отдельная единая имплементация.

А твои "интерфейс" это конечно ужасный говнокод. Но ты этого не знаешь. На каждый класс, наверное, пишешь интерфейсы и фабрики синглионов фабрик классов?) Да вы батенька...кодер.

Вот когда появится несколько имплементации (если, когда-нибудь...а скорее всего никогда ) то я просто в compile time проверю все функции и их сигнатуры у структуры - что есть методы lock и unlock 🔓 в структуре и всё.

> Как поможет раст исправить ошибку...

Увиливаешь. Никто не мешает использовать volatile в Rust коде и совершить такую же ошибку.

Только я знаю что ошибки могут быть и поэтому полез гуглить про volatile. А типичный программист на Rust, свято веря в безопасность, и проверки компилятора естественно никуда лезть и читать не будет. Нет warning? Значит безопасно. Компилятор всё проверил.

В итоге мой код будет лучше, качественнее, надёжнее, безопаснее чем у Rust фанатиков.

> Черновик или нерабочий код?

Рабочий я оставлю чтобы троллить на следующих новостях про Rust. Мне не к спеху поправить.

Знал что никто даже и 20 строк кода сам написать не сможет. Оказался прав 😀 Выложили бы своё - тут же поправил бы.

В общем картина Rust программистов очень печальная и удручающая

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

268. "Выпуск языка программирования Rust 1.75 и unikernel Hermit 0..."  +/
Сообщение от Аноним (-), 02-Янв-24, 01:35 
> В общем по существу ответить нечего.

Т.е ты слился? Я не особо удивлен.

> Большинство программистов на Rust ничего сложного написать не могут, даже попытаться.

Я тебе предоставил чужой рабочий код на Раст, а ты мне какой-то свой багованый полуфабрикат на Zig. Представляешь, ты умудрился ошибиться в 50 строках кода! О какой квалификации вообще может идти речь...
Лучше бы нашел чужой рабочий вариант, посмотрели бы его.

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

Феерическое предположение, на уровне "если бы бабушка была дедушкой".
Да и с чего он вдруг налажает? Ты по своему опыту судишь?
Ну не все такие программеры как ты.

> Вывод третий. Крутой программист и на Rust напишет хороший корректный код. Правда он его же и на С++ напишет, и на Zig.

Причем тут с++? Там и смартпоинтеры и raii есть. Может ты с Си спутал?
Если да, то это ложное предположение. Как жаль, что таких программистов не нашлось для ядра. Хотя гугл меняет С и С++ в андроиде на раст, что показательно.

> На каждый класс, наверное, пишешь интерфейсы и фабрики синглионов фабрик классов

О, ты опять показываешь свое "прекрасное" знание раста - в нем нет классов.

> я просто в compile time проверю все функции и их сигнатуры у структуры - что есть методы lock и unlock

Да, это ооочень круто. Вот только мои "интерфейсы" проверяются в compiletime)))

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

Ты опять делаешь бредовые выводы и обобщаешь...

> В итоге мой код будет лучше, качественнее, надёжнее

Ахаха, сам себя не похвалишь - никто не похвалит)))
Может будет, а может бы будешь #ыдлокодить на тайпскрипте, кто знает...
Но пока что ты уже обделался))

> Мне не к спеху поправить.

Поверь, уже его никто не ждет.

> В общем картина Rust программистов очень печальная и удручающая

Да, нам просто удручающе приходится общаться с такими как ты.

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

270. "Выпуск языка программирования Rust 1.75 и unikernel Hermit 0..."  +/
Сообщение от Витюшка (?), 02-Янв-24, 02:26 
Ну у вас с логикой всё печально. Я говорю "давай напишем код" и проверим у кого больше гарантий.У меня, ручками или у Rust.

Выяснилось что сам ты написать на Rust ничего не можешь. Не то что безопасно, а вообще никак.

Так об этом и речь!

Парень, ты жиденько обделался. Rust тебе не помог, а сам ты не могёшь. Как и все в этой ветке защитники. У вас только на словах всё безопасно. На деле 0 строк кода 😀 Смешно ей богу.

"Лучше бы взял", а может тогда тебя сразу на помойку выкинуть и взять того парня который тот код и написал?) Он, уверен, и на С++ без ошибок напишет.

Вам предложили написать 20 строк кода но и с этим вы не справились.

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

А так на что вы способны? Отправлять JSONчики клиенту, а всю реальную работу кто-то завал бы написал? Многопоточку там безопасную. Так хватит JS или Go за глаза.

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

260. "Выпуск языка программирования Rust 1.75 и unikernel Hermit 0..."  +/
Сообщение от Витюшка (?), 01-Янв-24, 19:05 
В этом и фишка, ни одного unsafe и язык является абсолютно небезопасным. И в этом коде можно сделать ошибку где угодно. Не только логическую.

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

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

Т.е. от Сишки Rust не сильно отличается.

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

Может, стоило сделать просто более безопасный С, с проверкой границ массивов (а не с ограничениями) в runtime и т.п.?

И вот Rust превращается.. превращается...в Zig :))

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

264. "Выпуск языка программирования Rust 1.75 и unikernel Hermit 0..."  +/
Сообщение от Аноним (-), 01-Янв-24, 23:26 
> В этом и фишка, ни одного unsafe и язык является абсолютно небезопасным.
> И в этом коде можно сделать ошибку где угодно. Не только логическую.

Не любую. А ту ошибку, отсутствие которой не гарантируется safe подмножеством.
Ну, пожалуйста, ну открой доку и прочитай!
Я тебе даже ссылку скину
doc.rust-lang.org/nomicon/meet-safe-and-unsafe.html
doc.rust-lang.org/nomicon/races.html
Надоело повторять одно и тоже!

> И ловить ты её будешь несколько лет.

Неплохой наброс... Пруфов конечно не будет, да?

> Т.е. от Сишки Rust не сильно отличается.

Пхахаха. Сишка позволяет тебе сделать так:
    double *ptr = (double*)malloc(sizeof(double) * 10);
    double *ptr2 = ptr;
    free(ptr);
    free(ptr2);
И будет классический дыряшечный double-free.
А теперь повтори это в безопасном расте. Попробуй напр. в playground.

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

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

> Может, стоило сделать просто более безопасный С, с проверкой границ массивов (а не с ограничениями) в runtime и т.п.?

В runtime слишком дорого. Плюс там не только проверка границ массивов.

> И вот Rust превращается.. превращается...в Zig :))

Слава богу нет))
Потому что в твоем zig делаешь:
    const allocator = std.heap.page_allocator;
    var memory1 = try allocator.alloc(u8, 2);
    var memory2 = memory1;
    allocator.free(memory1);
    allocator.free(memory2);
И наслаждаться "Segmentation fault at address 0x7f55bb3e5000"
Та же сишка, только в профиль. И что, помог тебе твой Zig?

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

266. "Выпуск языка программирования Rust 1.75 и unikernel Hermit 0..."  +/
Сообщение от Витюшка (?), 02-Янв-24, 00:37 
Ну и как же ты не в runtime отловишь выход за границы массива?

Очень хочу послушать гуру Раста, как они это делают в compile time.

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

То вы говорите что то что Rust гарантирует... очень ограничено. А значит в compile time это не проверить (вроде это очевидно?)...а тут же на голубом глазу что runtime проверки якобы очень дороги 😀 Либо одно, либо другое.

Те в Rust просто забивают и никакие проверки не делают?

А про гарантии borrow checker Rust я прекрасно осведомлён и что он гарантирует знаю.

В моём Zig не вышла ещё версия 1.0.
И эта лишь детали имплементации, не успели ребята написать ещё эту фичу.

https://github.com/ziglang/zig/issues/6004

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

Включая double free.

* Detect double free, and emit stack trace of:
//!    - Where it was first allocated
//!    - Where it was freed the first time
//!    - Where it was freed the second time

В принципе все эти ошибки можно и нужно детектировать. И Zig это и делает. Например double lock на мьютексе из своего потока. Аллокатор тоже много чего детектирует, но не всё ещё.

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

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

267. "Выпуск языка программирования Rust 1.75 и unikernel Hermit 0..."  +/
Сообщение от Аноним (-), 02-Янв-24, 01:21 
Ты вообще за дискуссией следишь? Ты спросил про Си
>>> Может, стоило сделать просто более безопасный С, с проверкой границ массивов
>> В runtime слишком дорого.
> Ну и как же ты не в runtime отловишь выход за границы массива?

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

> То вы говорите что то что Rust гарантирует... очень ограничено.

Нет, я такого не говорил. Это ты считаешь, что оно ограничено.
А я сказал, что раст покрывает конкретный сабсет, ошибки из которого очень распространены в системном и не только программировании и порождают море CVE.

> Либо одно, либо другое.
> Те в Rust просто забивают и никакие проверки не делают?

Это уже какая-то шизофрения...

> А про гарантии borrow checker Rust я прекрасно осведомлён и что он гарантирует знаю.

Ну-ну)) Ты еще в прошлой теме показал как прекрасно ты знаешь раст. И продолжаешь в этой)

> В моём Zig не вышла ещё версия 1.0.
> И эта лишь детали имплементации, не успели ребята написать ещё эту фичу.

Ахахаха! Такая крохотная деталь имплементации! Вот оно чё, Михалыч!

> https://github.com/ziglang/zig/issues/6004

Висит открытая с 2020 года.

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

Абсолютно неочевидно! Может к тому моменту они проедят донаты и забросять это поделие. Или сыграет bus-factor.
Сейчас есть просто факт - это не работает в "готовом для прода" Zig'е.

> В принципе все эти ошибки можно и нужно детектировать. И Zig это и делает.

Так делает или это еще не реализовано? Реализовано или "еще не всё"

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

Еще раз повторю - про раст я такого не сказал. Вопрос был про си, ответ был про си.

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

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

269. "Выпуск языка программирования Rust 1.75 и unikernel Hermit 0..."  +/
Сообщение от Витюшка (?), 02-Янв-24, 02:11 
Про героическое додумывание - это лучше к зеркалу подойти. При чём тут вообще С?

С чистым С Rust никто никогда не сравнивал. А вы всё пытаетесь спуститься пониже...на С... чтобы более выигрышно смотреться.

Мы про С++ говорили, говорим и будет говорить. И про Zig.

Про интерфейсы или как ты там их назвал в Rust - речь была про то что всё это и гораздо больше делается в Zig.

Интерфейсы это очень ограниченный инструмент. Zig позволяет это. Zig позволяет гораааздо больше. Про это речь шла.

Что такое интерфейс? Просто набор сигнатур функций который необходимо реализовать, может параметризованный.

В Zig можно сделать любые проверки всего что может быть вычислено в compile time.

Например как сделать в Rust интерфейс - у которого все методы будут начинаться с названия "start"? Или никак, или через какой-то убогий синтаксис макросов. С помощью какого-то корявого синтаксиса.

В Zig это делается легко на обычном же Zig.

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

Однако это было не "5 лет назад", а в "стабильной production ready версии языка 1.64". Вот и вся безопасность.

Но что-то про Rust ты такого не говоришь

> Сейчас есть просто факт - это не работает в "готовом для прода" Zig'е

что это не готовая поделка 😀

Сравнивать стабильную версию языка с 64 релизами с языком 0.11, у которого уже это есть из коробки. Ну... такое, не делает чести Rust

Слайсы и итераторы это и есть runtime проверки. Но ты этого не знал. Ну что же, не удивительно.

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

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

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




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

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