The OpenNET Project / Index page

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



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

"Выпуск языка программирования Rust 1.66"  +/
Сообщение от opennews (ok), 15-Дек-22, 23:01 
Опубликован релиз языка программирования общего назначения Rust 1.66, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки)...

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

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

Оглавление

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

2. Сообщение от Аноним (2), 15-Дек-22, 23:02   +36 +/
Я вот до сих пор не пойму, вот что стоило создателям раста оставив полный список своих фич по безопасности и всё такое сделать просто нормальный синтаксис. Ведь казалось бы вроде всё складно говорят, но почему нельзя сделать синтаксис, который можно было бы хотя бы нормально читать. Это какая-то форма насилия над личностью или средство самовыражения? Почему, кто мне это объяснит?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #5, #6, #7, #10, #11, #20, #60, #148, #178, #184, #208, #215

4. Сообщение от Аноним (4), 15-Дек-22, 23:07   +1 +/
Он великолепен!
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #151

5. Сообщение от неаноним (?), 15-Дек-22, 23:11   +11 +/
Это как в анекдоте - солдат должен копать не для того, чтобы вырыть яму, а для того, чтобы задолбаться...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #9

6. Сообщение от Аноним (15), 15-Дек-22, 23:11   +4 +/
Синтаксис вполне нормальный, а когда к нему привыкаешь, то он становится более читаемым чем синтаксис цпп, но меня больше волнует другое. Язык по "раздутости" и сложности догоняет цпп, хотя преподносит себя как конкурент Си.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #14, #139

7. Сообщение от Аноним (7), 15-Дек-22, 23:13   –8 +/
Синтаксис это единственная прелесть раста. Я всё ещё жду асинхронные генераторы, прежде чем его можно будет где-нибудь применить. Ну и средства отладки получше бы, у меня помнится были сложности с вычислением куда память утекает или в другом случае какого чёрта исполнение фризится на пустом месте. Буквально построчное чтение и вывод строки после регулярки, но рандомно фризится на принте. Судя по strace на мютексе и это ни о чём не говорит.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #96, #121, #143

9. Сообщение от Аноним (9), 15-Дек-22, 23:18   +/
Вы видимо в армии не служили, тогда бы над этим не смеялись. Молодые люди оставленные без работы (любой) не находят ничего интереснее, чем выявлять кто является альфой, а кто омегой в коллективе. Поэтому с точки зрения любого солдата, между копать яму чтобы задолбаться и быть отпинаным сапогами сослуживцев, надо выбирать первое.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #15, #93, #135, #138, #150

10. Сообщение от th3m3 (ok), 15-Дек-22, 23:20   –1 +/
Ой, да хватит уже про синтаксис заливать. Столько лет уже прошло. Уже можно было привыкнуть 10 раз.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #75

11. Сообщение от Аноним (11), 15-Дек-22, 23:22   –1 +/
Ты просто смогло в ML-семейство и поэтому страдаешь.

Хотя будь Rust ближе к ML синтаксически, протащить его в массы было бы несколько сложнее. От така загогулина.

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

12. Сообщение от Аноним (12), 15-Дек-22, 23:23   +1 +/
Как-то редко версии выходят, всего лишь раз в месяц.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #18, #331

14. Сообщение от Аноним (14), 15-Дек-22, 23:24   +7 +/
Он преподносит себя просто как язык системной разработки. А насчёт сложности - тут как с языком Scala, синтаксически фич до одури, но самых простых довольно немного, чтобы пользуясь только ими писать рабочий код. Все остальное только как средство выразить идею "красиво" или решить что-то специфические. В том же  C++ метапрограммированием на шаблонах занимаются только разработчики библиотек, обычные разрабы на зарплате в продуктовом коде используют только простые и понятные фичи шаблонов - специализацию под тип, variadic-и, perfect forwarding и SFINAE.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6

15. Сообщение от Аноним (15), 15-Дек-22, 23:26   +2 +/
Копание окопов и ям - это навык безусловно полезный, но чтобы решить проблему с выяснениями кто альфа, а кто омега, можно солдат полезным делом занять, а не имитацией деятельности. Ну хотя бы, например, военному делу научить.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #22, #74, #169

16. Сообщение от Аноним (22), 15-Дек-22, 23:29   +2 +/
"Каждое новое поколение заново открывает для себя секс"
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #166

18. Сообщение от Аноним (18), 15-Дек-22, 23:31   +3 +/
ну да, надо чаще. А то про него могут забыть
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #156

19. Сообщение от Аноним (19), 15-Дек-22, 23:33   +/
> реализации типажей

Как это понимать? Куда это понимать?

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

20. Сообщение от Нанонимусemail (?), 15-Дек-22, 23:36   +6 +/
Может кто-то внятно объяснить, в что именно не так в синтаксисе раста и какие вы предлагаете альтернативы?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #36, #41, #86, #102

21. Сообщение от Мистер Си (?), 15-Дек-22, 23:36   +9 +/
Абсолютно непригодный никчемный язык. Паразитирует на сишных библиотеках,  и своей целью ставит заменить С/С++ - нонсенс.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #31, #77

22. Сообщение от Аноним (22), 15-Дек-22, 23:37   +9 +/
Непосредственно на войне, "военное дело" занимает, максимум 1% времени.
Остальное - обустройство жизни (уборка, готовка, заготовка, чистка-смазка, ремонт, залатывание, сон, еда, туалет, помощь в уходе за раненными, обустройство позиции, наряды, наблюдения, помощь тыловым службам. Если не рядовой - куча бумажной работы (заявки, накладные, отчётность, боевой журнал, доклады, рапорта, документация подразделения...))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15

24. Сообщение от Аноним (24), 15-Дек-22, 23:39   +6 +/
Для каждого типажа программиста, своя реализация
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #133

26. Сообщение от Аноним (22), 15-Дек-22, 23:39   +1 +/
Наверное, что-то подобное тому, что в Си++...
Те же концепции - не обязательно к классам привязаны могут быть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19

28. Сообщение от Аноним (22), 15-Дек-22, 23:42   –1 +/
Знаете, какой-то он - ... некрасивый, что ли...
То ли дело - брейнфак!
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #300

29. Сообщение от Нанонимусemail (?), 15-Дек-22, 23:45   +/
impl TryFrom<Vec<T>> для Box<[T; N]>
Вот пример реализации типажа (трейта)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19

30. Сообщение от Аноним (30), 15-Дек-22, 23:48   +3 +/
есть такой типаж людей, который любит англйиские термины на русский переводить. обычно это старые больные на голову бюджетники типа преподов
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #43, #50, #224

31. Сообщение от Аноним (30), 15-Дек-22, 23:49   +1 +/
я бы опроверг эти слова, но у меня сейчас под раст места на диске не хватает
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21

34. Сообщение от Психиатор (?), 16-Дек-22, 00:05   +2 +/
Отрицание
Гнев <--- вы находитесь здесь
Торг
Депрессия
Принятие
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #46, #53, #171, #283

36. Сообщение от НяшМяш (ok), 16-Дек-22, 00:06   +/
Кто видел синтаксис плюсов, к расту претензий не имеет...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #170

39. Сообщение от Аноним (39), 16-Дек-22, 00:13   –2 +/
“Основанного проектом Mozilla”?!?!?
А ничего, что “проект Mozilla” лет так 8 или 9 игнорировал Rust, который по сути пет-проект их сотрудника?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #47, #164, #183

41. Сообщение от Аноним (41), 16-Дек-22, 00:14   –4 +/
Zig. Единственный язык, который выполнил свои обещания.

Ничего лучше с системным программированием не случалось.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #45, #49, #80, #158

43. Сообщение от Аноним (22), 16-Дек-22, 00:19   –2 +/
В тэбэ - мозог протатчэный?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30

45. Сообщение от Аноним (9), 16-Дек-22, 00:22   –1 +/
Что на нём системного написано?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #41 Ответы: #51

46. Сообщение от Аноним (22), 16-Дек-22, 00:22   +1 +/
Интересно, будет ли Rust++ или Rust# ?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34 Ответы: #62

47. Сообщение от Аноним (22), 16-Дек-22, 00:24   +4 +/
Да-да... а Джобс и Гейтс - в гаражах начинали, ага...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39

48. Сообщение от Аноним (41), 16-Дек-22, 00:25   +2 +/
Опять попытался попробовать Rust. Уже, наверное, 4-5ый раз. Но опять провал. Уж очень, очень, чрезвычайно когнитивно сложный.

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

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

Пожалуй, лучше Zig в мире системного программирования, ничего нет. На нём и останусь.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #78, #79, #209, #217

49. Сообщение от th3m3 (ok), 16-Дек-22, 00:26   –1 +/
А чего тогда про него ничего не слышно?))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #41 Ответы: #54, #61

50. Сообщение от Аноним (22), 16-Дек-22, 00:27   –1 +/
Американцы и англичане - ну совсем бы не поняли, о чём это вы...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30

51. Сообщение от Аноним (15), 16-Дек-22, 00:28   +1 +/
https://github.com/nrdmn/awesome-zig
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45

53. Сообщение от Аноним (4), 16-Дек-22, 00:29   +/
Кстати, полностью лживая, нерабочая схема. В реальности "принятие" происходит редко.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34 Ответы: #64, #72, #276

54. Сообщение от Аноним (15), 16-Дек-22, 00:29   –1 +/
Корпорации не вливают денежные массы, нет фанатов-шизиков с СДВГ.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49

60. Сообщение от github (?), 16-Дек-22, 00:46   +/
Ну вроде как очевидный косплей C и C++. Они же вроде как ближе всех к системному программированию. Питонообразный дереференс ссылок тем ещё бы насилием над эстетикой был бы. Опять же, где lifetime метки после def вкорячивать?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

61. Сообщение от Аноним (41), 16-Дек-22, 00:52   –1 +/
Дайте время,он пока версии 0.10 (хотя на нём можно уже писать серьёзный приличный код)

https://github.com/oven-sh/bun

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

62. Сообщение от Аноним (153), 16-Дек-22, 00:54   +4 +/
сначала - визуал-раст
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46

64. Сообщение от Аноним (64), 16-Дек-22, 01:01   +/
То есть ошибочен только пятый пункт, но схема все равно "полностью" лживая?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53 Ответы: #71

66. Сообщение от Аноним (66), 16-Дек-22, 01:29   +1 +/
Что там с выравниванием структур и вообще с организацией данных в памяти. Чет беглый взгляд привел к каким-то сериализаторам, а можно обычно просто штатно положить данные в память единообразным способом без выравнивания и прочего ...
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #69, #70, #219

69. Сообщение от Аноним (22), 16-Дек-22, 01:43   +/
"Чо, сильно умный, да? - Йиш, що дають!"
Сколько народ в 90-х на Джаву бубнел!...
А теперь - ничего.
Некоторые - даже удовольствие получают!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #66

70. Сообщение от Анон999 (?), 16-Дек-22, 01:50   +1 +/
#[repr(C)]
struct ThreeInts {
    first: i16,
    second: i8,
    third: i32
}

// Default representation, alignment lowered to 2.
#[repr(packed(2))]
struct PackedStruct {
    first: i16,
    second: i8,
    third: i32
}

// C representation, alignment raised to 8
#[repr(C, align(8))]
struct AlignedStruct {
    first: i16,
    second: i8,
    third: i32
}

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

71. Сообщение от Аноним (4), 16-Дек-22, 02:33   –2 +/
Пятый пункт ключевой, без него вся схема рушится.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #64 Ответы: #82, #91

72. Сообщение от Аноним (72), 16-Дек-22, 03:06   +/
Подтверждаю. systemd так и не стал общемировым станда.. а ой. Стал.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53 Ответы: #94

74. Сообщение от mma (?), 16-Дек-22, 05:58   +/
>но чтобы решить проблему с выяснениями кто альфа, а кто омега, можно солдат полезным делом занять

Омеги копают, Альфы "помогают", все давно в этом мире изобретено. И ребра/носы целы, и проблема решена)

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

75. Сообщение от mma (?), 16-Дек-22, 06:01   +1 +/
А зачем привыкать? Сегодня есть rust, потом про него забыли. Как хобби или работа для саморазвития и так пойдет.
Вон, сколько с D носились и где он сейчас? Как были C/C++/C#/Java мейнстримом так и остались, ну Python еще гдето там болтается.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #85, #125

76. Сообщение от Аноним (76), 16-Дек-22, 06:05   +/
Любимый язык по версии JavaScript.ru
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #87, #109

77. Сообщение от pashev.ru (?), 16-Дек-22, 06:23   +1 +/
Всё работает, всё понятно: https://git.pashev.ru/mendeleev/tree/mendeleev.rs
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21

78. Сообщение от pashev.ru (?), 16-Дек-22, 06:24   –1 +/
Всего 10? Лол. Учись, студент:

https://git.pashev.ru/gcd
https://git.pashev.ru/mendeleev/tree/mendeleev.rs

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

79. Сообщение от iPony129412 (?), 16-Дек-22, 06:38   +1 +/
Я тут резюме отправил. Там знание Rust желательно было написано.
Так ответили "нам нужен питонист, а не плюсовик" 🤨
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48

80. Сообщение от Аноним (80), 16-Дек-22, 07:11   +4 +/
Сомнительный язык, как по мне.
1. Объявляются const, которые меняют свои значения. Т.е. значение const подставляется во время выполнения программы, а не компиляции.
2. В `pub fn main() !void `, что значит конструкция !void? Зачем инвертируют void?

И для версии 0.10 такие мелочи являются большим минусом.

П.С. Мимо крокодит голанг разраб...

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

81. Сообщение от Аноним (80), 16-Дек-22, 07:12   +/
3. Зашел в какую-то репу, там весь код состоит из `pub const`.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #80

82. Сообщение от Аноним (93), 16-Дек-22, 07:39   +1 +/
Очень печально что эксперты-программисты с опеннет останутся в депрессии из за rust.
Как же столь квалифицированные специалисты будут писать свои замечательные программы...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #71

83. Сообщение от Аноним (141), 16-Дек-22, 07:43   –1 +/
Знакомлюсь с Rust. Пока первый взгляд через википедию.
Цитата: "const — постоянные. Живут в течение всего времени работы программы. А именно, у них вообще нет определённого адреса в памяти. Это потому, что они встраиваются (inline) в каждое место, где есть их использование,"

Получается "код, не прошедший через компилятор" не сможет получить доступ к константе? По сути это #define?

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #92, #119, #142, #162, #220

84. Сообщение от Аноним (93), 16-Дек-22, 07:43   +/
Многие люди второй-третий язык удержать в голове могут.
Я например 😥
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #78 Ответы: #101, #186

85. Сообщение от Аноним (93), 16-Дек-22, 07:54   +/
Но java, c# и python это инерпритируемые языки, они для написания системных компонентов, не предназначены.
Даже основные реализации их виртуальных машин написаны на других языках, си++ у джава и си у питона
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #75 Ответы: #342

86. Сообщение от Аноним (93), 16-Дек-22, 08:01   +3 +/
Профессиональным экспертам-программистам с опеннет, привыкшим к низкоуровневым си и ассемблеру, сложно понять зачем нужны строгая типизация, автоматическое управление памятью, отсутствие null, проверки комплилятором.
Они легко управляют регистрами и памятью вручную, неопределенное поведение для них возможность оптимизации, а ограничения rust им только мешают.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #366

87. Сообщение от Аноним (93), 16-Дек-22, 08:11   +1 +/
А где там опрос?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76

88. Сообщение от Аноним (141), 16-Дек-22, 08:11   –1 +/
В продолжение. Не понимаю как они собираются связывать в ядре две парадигмы Переменная? В Си переменная это именованный адрес, а в Rust это "ссылка имеющая владельца".
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #99, #144, #165, #173, #227

91. Сообщение от Аноним (160), 16-Дек-22, 08:46   –1 +/
Если учесть что это схема принятия неизбежного как-то неожиданно что она может быть применена в случае когда неизбежное не принимается.

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

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

92. Сообщение от Аноним (93), 16-Дек-22, 08:58   +1 +/
Знакомлюсь с Rust через комментарии на опеннет и понимаю что ни один эксперт с опеннет, специалист по низкоуровневым си и ассемблеру не будет на нем писать
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #83

93. Сообщение от Аноним (93), 16-Дек-22, 09:04   –3 +/
С точки зрения альфы лучше пинать сослуживцев сапогами чем копать окопы 😥
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #136

94. Сообщение от Аноним (153), 16-Дек-22, 09:11   –3 +/
на системду нет стандарта. Как и на раст.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72 Ответы: #131

96. Сообщение от Аноним (96), 16-Дек-22, 09:19   +/
Может все-таки на регулярке фриз? Просто я не могу в это поверить, но если у вас такое, то хотелось бы подробностей.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #115

99. Сообщение от Аноним (99), 16-Дек-22, 09:23   +1 +/
>>> В Си переменная это именованный адрес <<<

Ох, уж эти местные эксперты:)

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

100. Сообщение от Аноним (100), 16-Дек-22, 09:29   +/
Ну да, сам себя не похвалишь - никто не похвалит))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #78

101. Сообщение от Аноним (41), 16-Дек-22, 09:30   –1 +/
Не одновременно))) А на протяжении карьеры.

Конечно про С# (2.0) я помню... ничего)

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

102. Сообщение от Анонн (?), 16-Дек-22, 09:36   +/
Синтаксис не такой как в сишечке, вот и людей корежит.
Просто синдром утенка. Люди видели си и паскаль, кто-то джаву, кто-то 1с. Может еще что-то.
А все остальное прошло мимо них.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #124

104. Сообщение от Аноним (153), 16-Дек-22, 09:42   +1 +/
Приведи пример переменной без адреса, Карл.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #99 Ответы: #106, #107, #112, #198

105. Сообщение от Аноним (41), 16-Дек-22, 09:43   –2 +/
Что???

When a local variable is const, it means that after initialization, the variable's value will not change. If the initialization value of a const variable is comptime-known, then the variable is also comptime-known.

!void это тип, который может вернуть (любую) ошибку. Обычно Error!RetType.  Очень классная конструкция, кстати.

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

106. Сообщение от Аноним (153), 16-Дек-22, 09:43   +2 +/
Сразу предупрежу, что у регистров тоже адреса, а на некоторых платформах регистры ещё и отображаются в общее адресное пространство.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #104 Ответы: #137

107. Сообщение от Аноним (99), 16-Дек-22, 09:43   +1 +/
*(int *)0xdeadbeaf = 0xdead;
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #104 Ответы: #108, #113, #117

108. Сообщение от Аноним (99), 16-Дек-22, 09:46   –1 +/
то что слева чисто технически это и есть переменная и это не именованный адрес как прекрасно видно!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #107 Ответы: #114, #126

109. Сообщение от Аноним (153), 16-Дек-22, 09:46   +1 +/
> по версии JavaScript

Уже смешно :)

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

111. Сообщение от Аноним (153), 16-Дек-22, 09:47   –4 +/
Такого ужаса даже в брейнфаке нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #70 Ответы: #140, #203

112. Сообщение от Аноним (99), 16-Дек-22, 09:54   –2 +/
>>> переменной без адреса <<<

Так о том и речь, - у переменной есть адрес! Переменная это область памяти содержимое которой можно изменить; да у переменной может быть имя, но это необязательно. Но уж точно переменная это НЕ какой-то там именованный адрес!

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

113. Сообщение от Аноним (141), 16-Дек-22, 09:58   +/
Это адрес без имени переменной (имя которое понятно хотя бы автору спустя какое-то время).  
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #107 Ответы: #118

114. Сообщение от Аноним (141), 16-Дек-22, 10:01   +/
Это ничем не отличается от проходной ячейки памяти. Просто умный автор решил забрутить свой код. И сам потом не вспомнит сто там не посмотрев спеки на железо.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #108

115. Сообщение от Бывалый смузихлёб (?), 16-Дек-22, 10:04   +/
у некоторых и МК сам по себе "звенит". Причём не каждый. Без кондёров, без катушек, без внешнего источника тактирования - которые убрали для поиска источника шума. Вот просто пищит микроконтроллер на ШИМе и всё и хоть тресни. Причём, даже неясно, чему там вообще шуметь
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #96

116. Сообщение от Аноним (141), 16-Дек-22, 10:05   +/
Просто в качестве имени вы использовали адрес и поместили его слева. Минуя таблицу компилятора. Вы в интернет тоже ходите минуя ДНС?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #112 Ответы: #120

117. Сообщение от Аноним (141), 16-Дек-22, 10:09   +1 +/
в си все понятно даже без определения. А вот в раст такое не прокатит. там параметрический полиморфизм и программист оперирует связываниями. И такие хаки не прокатят.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #107 Ответы: #128

118. Сообщение от Аноним (99), 16-Дек-22, 10:10   +/
Имя может быть у переменной! Содержимое переменной может являться адресом другой переменной, - такая переменная называется указателем. Но у самого адреса нет никакого имени. Адрес это просто адрес!!!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #113 Ответы: #122

119. Сообщение от Аноним (141), 16-Дек-22, 10:12   –1 +/
си-программист ядра так заглядывает в раст исходник. Видит знакомое const и ищет из другого модуля где же она.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #83

120. Сообщение от Аноним (99), 16-Дек-22, 10:15   –1 +/
>>> вы использовали адрес <<<

Так о том и речь, что в конечном то счете - нет никаких имен, - есть только адреса!

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

121. Сообщение от 1 (??), 16-Дек-22, 10:18   –3 +/
На РАсте ? Утекает память ? O_o
Это же невозможно по определению языка !!!!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #141, #201

122. Сообщение от Аноним (141), 16-Дек-22, 10:22   –1 +/
Имя это то что отличает вас от других людей. Имя ячейки памяти для этого же.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #118 Ответы: #123

123. Сообщение от Аноним (99), 16-Дек-22, 10:28   –1 +/
Слушайте, я уже вам всё расжевал, как только мог! Если вы попрежнему считаете что переменая это как вы сказали именованный адрес, - дальше я вас переубеждать не стану;)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #122 Ответы: #127

124. Сообщение от 1 (??), 16-Дек-22, 10:31   –1 +/
Дать бы тебе в языке синтаксиса sendmail.cf поразбираться...
Ты был бы счастлив.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #102 Ответы: #329

125. Сообщение от inferrna (ok), 16-Дек-22, 10:34   +2 +/
D погубила пляска со стандартными библиотеками и версиями. Только к нему начали присматриваться, как понеслось: tango, mango, phobos, версия 2, несовместимая с 1. Ну, это почему я от него отказался. Да и недолго так носились - лет, эдак, 5, потом на убыль пошло. И корпорации его особо не использовали в продакшене.
У раста в этом плане стабильность: код для 2015-эдишн сейчас вполне себе соберётся, носятся с ним уже скоро лет 10 как (с 2013 носятся активно), корпорациям зашёл на ура, даже тем, которые свои языки пилят.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #75

126. Сообщение от Аноним (153), 16-Дек-22, 10:40   +1 +/
То, что ты намакакокодил, и есть имя адреса в шестнадцатеричном представлении.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #108 Ответы: #149, #157

127. Сообщение от Аноним (141), 16-Дек-22, 10:41   –1 +/
Меня убеждать не надо. Я и до этого знал что имя существоет только в пределах компилятора. )
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #123

128. Сообщение от Аноним (153), 16-Дек-22, 10:41   –2 +/
Теперь понятно, почему редох загнулся и не хочет работать на реальном железе.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #117 Ответы: #303

129. Сообщение от Аноним (153), 16-Дек-22, 10:43   +/
> нет никаких имен, - есть только адреса!

Сразу! видно настоящего! растамана!

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

130. Сообщение от Аноним (99), 16-Дек-22, 10:46   +/
Если вы также считаете что В Си переменная это именованный адрес, то переубеждать я вас в этом не собираюсь! Все что хотел, - я сказал!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #129 Ответы: #134

131. Сообщение от Аноним (141), 16-Дек-22, 10:53   +/
Системд находится в руках кучки заговорщиком, укравших у майкрософт идею системного менеджера, потому что у  адептов много у майкрософт.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #94

132. Сообщение от Facemaker (?), 16-Дек-22, 10:55   +1 +/
>Как это понимать? Куда это понимать?

**Rust-энтузиаст на проводе**
Меня тоже корежит этот перевод "trait" -> "типаж". Но как лучше? "Свойство", "особенность", "черта", "характеристика" совсем не в кассу. "Интерфейс" тоже не то: уже изрядно перегруженное слово. "Грань" звучит странно.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #146, #232, #297

133. Сообщение от Аноним (141), 16-Дек-22, 10:56   +/
В контексте единства ядра, общежитие си и раст можно будет охарактеризовать - взболтать но не смешивать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24

134. Сообщение от Аноним (141), 16-Дек-22, 11:08   +/
Успокойтесь ) Все поняли что имен не существует. Вот и в расте даже сущности не существет. Положил яблоко, чихнул и нет яблока, один огрызок. Жалуешься а тебе в ответ - надо было предупреждать что вам нужна copy связность а не move. У нас по умолчанию move. И вот таких умолчаний - туча и мужики не знают )
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #130

135. Сообщение от псевдонимус (?), 16-Дек-22, 11:08   +/
Прямо вот наблюдаю последствиея это порочнейшей практики чем бы не занимался.. Лишь бы..

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

136. Сообщение от псевдонимус (?), 16-Дек-22, 11:10   +/
Значит альфа помрет не своей смертью.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #93

137. Сообщение от Аноним (186), 16-Дек-22, 11:11   –1 +/
Уважаемый эксперт-программист. Уточните пожалуйста, какой адрес у AX, BX, CX ?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #106 Ответы: #145, #155

138. Сообщение от Аноним (138), 16-Дек-22, 11:18   +1 +/
Ты видимо софт никогда не разрабатывал. Зачем собирать молодых людей чтобы они даже просто вебдвижек Servo не могли написать. Почему бы не сделать так чтобы они не задолбались, а просто выпустили продукт в продакшн.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

139. Сообщение от Аноним (138), 16-Дек-22, 11:18   –1 +/
Это примерно никогда?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6

140. Сообщение от Аноним (186), 16-Дек-22, 11:18   +5 +/
опеннет эксперт по программированию первый раз увидел код.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #111 Ответы: #188

141. Сообщение от Аноним (141), 16-Дек-22, 11:23   +/
Рекламщики ушли, раст программист остался один на один с компилятором. Зато как нравился синтаксис - на то и купился. )
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #121

142. Сообщение от Аноним (138), 16-Дек-22, 11:24   +/
А если враги получат доступ к твоей памяти и поменяют значение const? А если const везде встроить то сразу везде её поменять будет сложно. Это называется безоРАСТность!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #83 Ответы: #147, #152

143. Сообщение от Аноним (141), 16-Дек-22, 11:24   –1 +/
Привыкайте. Много скрыто от программиста и много умолчаний. Предлагаю более серьезные платные курсы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

144. Сообщение от Аноним (138), 16-Дек-22, 11:26   +3 +/
Есть один секрет они ничего и не связывают. Они кричат что все кругом дураки и что все кругом виноваты. А они святые и раст святой.  
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #88

145. Сообщение от Аноним (141), 16-Дек-22, 11:34   +1 +/
Их адреса вшиты в инструкцию
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #137 Ответы: #195

146. Сообщение от Аноним (30), 16-Дек-22, 11:35   +1 +/
лучше trait или трейт. а вообще зачем отдельное слово?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #132

147. Сообщение от Аноним (141), 16-Дек-22, 11:41   –1 +/
Константы помещаются в память защищенную от записи. Не считайте меня кэпом я просто юнгу учу)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #142 Ответы: #172

148. Сообщение от Аноним (169), 16-Дек-22, 11:41   –1 +/
Это средство самовырождения.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #160

149. Сообщение от Аноним (99), 16-Дек-22, 11:43   –1 +/
>>> имя адреса в шестнадцатеричном представлении <<<

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

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

150. Сообщение от z (??), 16-Дек-22, 11:45   +/
И опыт армии что показал? Что если рыть, то поиски альфы прекратятся? Кому интересно всегда найдет время и способ.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

151. Сообщение от Аноним (169), 16-Дек-22, 11:45   +/
Растогедон?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #221

152. Сообщение от Аноним (141), 16-Дек-22, 11:46   +/
И да ядро и модули ядра в одном пространстве. Так что как и сказал общежитие раст и си это взболтать но не смешивать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #142

153. Сообщение от Аноним (153), 16-Дек-22, 11:46   +/
> !void это тип, который может вернуть (любую) ошибку.

Нет, яву вам не переплюнуть.

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

155. Сообщение от Аноним (153), 16-Дек-22, 11:48   +/
гугли хотя бы modrm
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #137

156. Сообщение от Аноним (169), 16-Дек-22, 11:49   +/
Да пора уже отбросить это первое незначащее число номера версии.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18

157. Сообщение от Аноним (141), 16-Дек-22, 11:49   –1 +/
Почему "самые умные" сразу обзываются. ( При этом сам сказал глупость. Чтобы сразу боялись критиковать?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #126

158. Сообщение от Facemaker (?), 16-Дек-22, 11:51   –1 +/
>Zig. Единственный язык, который выполнил свои обещания.

Ну вот и посмотрим, кто победит :)

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

160. Сообщение от Аноним (160), 16-Дек-22, 11:52   +/
Вот поэтому на нём ничего и не написали.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #148

162. Сообщение от Аноним (162), 16-Дек-22, 12:00   +/
Глобальные переменные, живущие весь цикл программы - это static. Если ты о них. Но использовать их крайне не приветствуется, доступ только через unsafe.
static mut VAL: ty = expr;

const VAL: ty = expr; // строго типизированная константа, вычисленная на этапе компиляции по выражению справа

const fn foo() {} // функция, которую можно применять как в рантайме (как обычную функцию), так и в компайлтайме в выражениях для расчета констант

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

163. Сообщение от Вы забыли заполнить поле Name (?), 16-Дек-22, 12:03   –1 +/
> В пакетном менеджере "cargo" предложена команда "remove", позволяющая из командной строки удалять зависимости из манифеста Cargo.toml.

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

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

164. Сообщение от Вы забыли заполнить поле Name (?), 16-Дек-22, 12:05   +/
Сотрудник кстати раст не развивает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39

165. Сообщение от Маняним (?), 16-Дек-22, 12:06   –1 +/
> , а в Rust это "ссылка имеющая владельца".

А запутанном С++ это просто `constexpr int c = 123;` в отличии от просто `const int = 123;`

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

166. Сообщение от Вы забыли заполнить поле Name (?), 16-Дек-22, 12:06   +3 +/
В отношениях с растом многие куколды- предпочитают, чтобы с ним трахался кто-то другой.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16 Ответы: #167, #244

167. Сообщение от Вы забыли заполнить поле Name (?), 16-Дек-22, 12:08   +4 +/
Что неудивительно, потому что раст- это девочка с сюрпризом.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #166 Ответы: #223

168. Сообщение от Аноним (141), 16-Дек-22, 12:10   –1 +/
А знаете почему unsafe? Потому что константа это простая сущность. А по концепции rust программист не должен иметь доступа к сущности. Не будем уточнять по какой причине (неопытность, сговор АНБ и пр.) Но Rust один из языков рекомендованных АНБ для применения. И в этом топике я показываю как разно "говорят" раст и си программисты. И идея интегрировать в единое ядро сомнительна. Они не будут понимать друг друга. Как интерфейсный? может быть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #162 Ответы: #174

169. Сообщение от Аноним (169), 16-Дек-22, 12:14   +/
Зачем какому-то военному делу учить. Всеж знают, которое самое полезное дело, чтоб солдат занять - строить коттеджи для генералов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15

170. Сообщение от Вы забыли заполнить поле Name (?), 16-Дек-22, 12:15   +/
Похоже, что только видел.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36

171. Сообщение от Аноним (141), 16-Дек-22, 12:35   +/
Забыли расставить if )
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34

172. Сообщение от Аноним (138), 16-Дек-22, 12:41   –1 +/
Ты так уверен что на всех платформах и на всех архитектурах никто никаким способом не может писать в защищенную память? Это я уже не говорю про дизассамбилрование и правку самого бинарника. Ну тебе так-то и раст не нужен с такой верой)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #147 Ответы: #176

173. Сообщение от Аноним (173), 16-Дек-22, 12:44   +1 +/
Причем тут переменная и заинлайненное значение?

В расте все на порядок веселее, ведь там есть zst (zero sized types). Пустой кортеж — () гарантировано имеет размер в 0 байт. При этом, ты можешь им оперировать как обычным типом, например, создать вектор в 100 элементов из пустых кортежей. И размер этого вектора будет 100 * 0 = 0 байт (+ несколько байт переменных на длину массива, его капасити и пр.). И при этом все работает. Ты можешь по нему итерироваться, уменьшать длину, увеличивать.

У любой переменной в расте можно взять адрес. И это даже безопасная операция, просто число. И его можно взять и у zst типов. Раст просто вернет какое-то число, чтобы от него отвязались. А вот разыменование этого числа (превращение его опять в переменную) — это небезопасная операция. И если ты попробуешь адрес от zst типа преобразовать опять в переменную, то скорее всего, это будет ub, со всем вытекающим. Но можешь это делать только в unsafe блоках. Там ты сам себе буратино.

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

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

174. Сообщение от Аноним (138), 16-Дек-22, 12:44   +/
Ну вот и свидетель АНБ насмотревшийся РЕНТВ. АНБ Ruby и Java рекомендуют. И тоже не просто так... Им то уж лучше знать у кого куда должен быть доступ.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #168 Ответы: #177

175. Сообщение от Аноним (175), 16-Дек-22, 12:50   +/
Ну да, руками то править файлы нельзя было раньше же
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #163 Ответы: #179

176. Сообщение от Аноним (141), 16-Дек-22, 12:52   –1 +/
А вы так уверены что раст-способ безупречен? Хакеры ломают программы, а вы ломаете стандарты. Трудно было синтаксис подправить чтобы объявление отражало сущность. inline незнакомо?  
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #172 Ответы: #189

177. Сообщение от Аноним (141), 16-Дек-22, 13:00   –1 +/
Ну вот и ответственный за срабатывания алярм-фильтра АНБ. ) Говорит витеевато и непонятно. На всякий случай копипаст с этого сайта "АНБ рекомендует переходить на языки программирования, безопасно работающие с памятью
14.11.2022 10:12"
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #174 Ответы: #190, #226

178. Сообщение от Аноним (178), 16-Дек-22, 13:06   +5 +/
А что конкретно ненормально?
Я не защищаю Rust, просто мне интересна эта тема, языки программирования в целом, в том числе и синтаксисы, с точки зрения удобства, понятности и прочих харакретистик.
Есть у вас конкретные примеры того что "ненормально" и как бы вы сделали нормально?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

179. Сообщение от Вы забыли заполнить поле Name (?), 16-Дек-22, 13:07   –1 +/
> Ну да, руками то править файлы нельзя было раньше же

С поиском всех транзитивных зависимостей?

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

180. Сообщение от Аноним (141), 16-Дек-22, 13:10   +/
Ну да. Надо отучить от работы с сущностью. А потом уже подсунуть нужное при этом логика программы не пострадает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #173

181. Сообщение от Максим (??), 16-Дек-22, 13:15   +5 +/
Зачем этот язык всё время форсят, если даже его создатель Мозилла не смогла переписать на нём свой браузер?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #185, #191, #212, #363

182. Сообщение от Аноним (182), 16-Дек-22, 13:24   +/
В Cargo.toml нет транзитивных зависимостей, при чем они тут?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #179 Ответы: #194

183. Сообщение от Максим (??), 16-Дек-22, 13:27   –1 +/
Кстати да, возникает резонный вопрос - почему Фаерфокс до сих пор не на Расте?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39 Ответы: #187, #253

184. Сообщение от Максим (??), 16-Дек-22, 13:29   –1 +/
Потому что вебщики делали.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

185. Сообщение от Аноним (186), 16-Дек-22, 13:47   +4 +/
чтобы было больше боли пониже спины, унижений и комментариев от опеннет экспертов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #181 Ответы: #192

186. Сообщение от Аноним (186), 16-Дек-22, 13:52   +1 +/
*не могут
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #84

187. Сообщение от Аноним (138), 16-Дек-22, 14:06   –1 +/
Мало мазохистов и программистов с другими девиациями чтобы это сделать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #183

188. Сообщение от Аноним (138), 16-Дек-22, 14:08   –1 +/
Увидел код на расте и не стал писать на расте. Будь как эксперт не пиши на расте.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #140 Ответы: #205

189. Сообщение от Аноним (138), 16-Дек-22, 14:11   –2 +/
Я считаю что раст дно как и все кто на нём пишут.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #176 Ответы: #243

190. Сообщение от Аноним (138), 16-Дек-22, 14:12   +/
Питон безопасно работает с памятью в рекомендованных АНБ его нет. Вопрос знатоку: "Почему?"
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #177

191. Сообщение от Аноним (138), 16-Дек-22, 14:14   –1 +/
Чтобы не говорить что Мозилле облажалась.

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

192. Сообщение от Аноним (138), 16-Дек-22, 14:15   –1 +/
Типичный приём смещения фокуса внимания с проблем, на ощущения.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #185 Ответы: #193

193. Сообщение от Аноним (186), 16-Дек-22, 14:30   +1 +/
У вас какие-то проблемы?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #192

194. Сообщение от Вы забыли заполнить поле Name (?), 16-Дек-22, 14:31   +/
> В Cargo.toml нет транзитивных зависимостей, при чем они тут?

Cargo.lock кто будет обновлять после удаления?

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

195. Сообщение от Аноним (186), 16-Дек-22, 14:33   +/
ты не ответил на вопрос какой адрес.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #145 Ответы: #202

196. Сообщение от Вы забыли заполнить поле Name (?), 16-Дек-22, 14:34   +/
> Дайте время,он пока версии 0.10 (хотя на нём можно уже писать серьёзный
> приличный код)
> https://github.com/oven-sh/bun

Ненужное и неспользуемое в проде поделие для говножс с 30% кода на плюсах. Успех, однако.

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

198. Сообщение от Советский инженер (?), 16-Дек-22, 14:47   –1 +/
register int noadr;

Получите и распишитесь, бездари.

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

199. Сообщение от yet another anonymous (?), 16-Дек-22, 14:57   +/
> ... это тип, который может вернуть (любую) ошибку.

Что за набор слов? "Тип, который возвращает..." --- полный п..ц.

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

200. Сообщение от Banza1email (?), 16-Дек-22, 15:03   +1 +/
Синтаксис похож на смесь JS, CSS и HTML..
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #207

201. Сообщение от Аноним (201), 16-Дек-22, 15:37   +/
Скорее всего юродствуешь, тролль, но если вдруг случайно (не верю!) я не прав (тогда извини), поясню: раст в силу своей технологии управления памятью не любит циклические ссылки. Это должен уже программист контролировать, вручную обрабатывать, а иначе память не очистится в зацикленных конструкциях. Ну и конечно еще можно неверно работать с внешними сишными библиотеками.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #121

202. Сообщение от Аноним (153), 16-Дек-22, 15:45   +/
смотри modrm - это ответ на твой вопрос.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #195

203. Сообщение от Аноним (201), 16-Дек-22, 15:51   +2 +/
И в чём ужас? Буковки латинские? Или "как они посмели наши фигурные скобочки спереть"? Или i16 непонятны?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #111

205. Сообщение от Аноним (186), 16-Дек-22, 15:55   –2 +/
я итак не пишу, на работе с головой хватает kotlin, java, js, php и 8 фреймворков.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #188

207. Сообщение от Аноним (186), 16-Дек-22, 15:59   +2 +/
опеннет эксперты, не видевшие ни js, ни css, ни html строят догадки, на что они могли быть похожи.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #200

208. Сообщение от Px (?), 16-Дек-22, 16:18   +2 +/
Для меня, синтаксис раст это весомая часть от того, из-за чего я его использую (там где могу, где не могу — с++)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

209. Сообщение от Px (?), 16-Дек-22, 16:22   –2 +/
Кому вообще нужен c++ без метапрограммирования? 🤔
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48 Ответы: #369

210. Сообщение от Аноним (182), 16-Дек-22, 16:32   –6 +/
Все зависимости от указанного крейта cargo remove также вычистит и из Cargo.lock. Или в чем вопрос?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #194 Ответы: #225

211. Сообщение от warlock66613email (ok), 16-Дек-22, 16:32   +/
> В перечислениях c целочисленными представлениями (атрибутом "#[repr(Int)]") разрешено явное указание дискриминанта

Вот это реально здорово. Ещё немного и на стабильном Rust можно даже будет программировать. Но пока всё же nightly наше всё.

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

212. Сообщение от Без аргументов (?), 16-Дек-22, 16:39   –1 +/
Чтобы не как у всех. Это как BDSM UX в GIMP -- чисто по фану
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #181

213. Сообщение от warlock66613email (ok), 16-Дек-22, 16:43   +1 +/
> i*::{checked_sub_unsigned, overflowing_sub_unsigned, saturating_sub_unsigned, wrapping_sub_unsigned}

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

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

214. Сообщение от Аноним (214), 16-Дек-22, 16:48   +/
А когда мозиловцы выкинут сабж из обязательных зависимостей?
Ответить | Правка | Наверх | Cообщить модератору

215. Сообщение от warlock66613email (ok), 16-Дек-22, 16:52   +/
У Rust очень приятный синтаксис. Это просто такая особенность человеческого мозга, что непривычное кажется плохим; программисту про эту особенность надо знать и ей противодействовать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

217. Сообщение от warlock66613email (ok), 16-Дек-22, 17:01   +1 +/
Количество — это ещё не всё. Haskell освоили?

Разные хитрые структуры данных писать по-разному и по-хитрому: есть разные методы в зависимости от требований.

Иногда хорошо работает подход "всё кладём в Vec, далее работаем с индексами". Я такой подход очень люблю, даже библиотеку свою сделал (https://crates.io/crates/components-arena). Но иногда издержки такого варианта неприемлемы.

Другой подход — использовать специальные библиотеки интрузивных коллекций.

Третий — написать сложное место как unsafe и закрыть safe оболочкой.

Четвёртый — использовать счётчики ссылок.

И т. д.

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

219. Сообщение от warlock66613email (ok), 16-Дек-22, 18:27   +/
К счастью нет, нельзя. Этот подход доказал свою ущербность и остался в прошлом.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #66 Ответы: #284

220. Сообщение от warlock66613email (ok), 16-Дек-22, 18:32   +/
Нет, const — это не define, а inline.

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

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

221. Сообщение от Владимир (??), 16-Дек-22, 18:34   +1 +/
>Растогедон?

Фракталогедон ...

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

223. Сообщение от Парень твоего папы (?), 16-Дек-22, 19:04   +/
Выбираете суровый брутальный мужской секс с сишечкой?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #167

224. Сообщение от Парень твоего папы (?), 16-Дек-22, 19:06   –1 +/
А вот и смузи-программист пожаловал.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30

225. Сообщение от Вы забыли заполнить поле Name (?), 16-Дек-22, 19:35   +1 +/
Дурочку включил? Cargo remove только добавили. Перечитай ветку.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #210

226. Сообщение от Аноним Ваноним (?), 16-Дек-22, 19:50   +1 +/
Хоть АНБ вряд ли желает людям добра, но предположу, что они хотят, чтобы в системы входили только они по бэкдорам, а не рандомные васяны по скачаным эксплоитам на 1001 уязвимость в среднестатистическом девайсе. Ну и типа если раст такой плохой, то АНБ скорее всего делает закладки в llvm на этапе кодогенерации. Задумаемся
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #177

227. Сообщение от Аноним (227), 16-Дек-22, 19:54   –1 +/
продолжайте программировать на javascript не отвлекайтесь
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #88

228. Сообщение от Вы забыли заполнить поле Name (?), 16-Дек-22, 20:52   +1 +/
Программирование на атрибутах. Слишком много декларативщины.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #211

229. Сообщение от Аноним (153), 16-Дек-22, 21:39   +/
Просто грибы были разные.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #213 Ответы: #288

230. Сообщение от Аноним (153), 16-Дек-22, 21:40   +/
Да они паскаль уже почти догнали!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #211 Ответы: #240

231. Сообщение от fuggy (ok), 16-Дек-22, 21:50   +/
>Добавлена функция core::hint::black_box

Функция то уже была test::bench::black_box . Вот к сожалению Bencher до сих пор в ночной версии, а штука то полезная.

>BTreeSet::{first, last, pop_first, pop_last}
>BTreeMap::{first_key_value, last_key_value, first_entry, last_entry, pop_first, pop_last}
>Duration::try_from_secs_{f32,f64}

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

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

232. Сообщение от fuggy (ok), 16-Дек-22, 22:00   +1 +/
Типаж уже устоявшийся термин. Ты ещё до слова поток не дошёл, это и thread и stream. И что-то никто не спешит называть стек - стогом сена или магазинной памятью.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #132

233. Сообщение от fuggy (ok), 16-Дек-22, 22:10   +/
Не слышал про bottom type в теории типов? Ненаселённый тип. В других языках это Nothing или Never.
По сути тот же тип что возвращает конструкция for(;;) { }
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #80

234. Сообщение от fuggy (ok), 16-Дек-22, 22:18   +/
Конечно он криво написал. Это тип при вычислении (evaluation) которого бросается ошибка.
Вычисление в данном случае это как в фразе "вычисли 2 + 3".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #199 Ответы: #235

235. Сообщение от yet another anonymous (?), 16-Дек-22, 22:32   +/
Так и вы написали не лучше.

> Это тип при вычислении (evaluation) которого бросается ошибка.

Вычисление типа (в данном контексте) это вообще что?

> это как в фразе "вычисли 2 + 3".

Ну и что у нас "тип"? 2 или 3?

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

236. Сообщение от Аноним (153), 16-Дек-22, 22:40   +2 +/
> Когда уже можно на стабильном писать.

Нет стандарта - будут постоянные проблемы.

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

239. Сообщение от fuggy (ok), 16-Дек-22, 23:17   –1 +/
Есть стандарт. Есть Rust Edition 2015, 2018 (RFC 2052), 2021 (RFC 3085). То что нет стандарта это устаревшая информация.
Но какие-нибудь банальные функции вроде checked_add стали стабильными только недавно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #236 Ответы: #251, #254

240. Сообщение от warlock66613email (ok), 16-Дек-22, 23:19   +/
> Да они паскаль уже почти догнали!

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

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

241. Сообщение от warlock66613email (ok), 16-Дек-22, 23:50   +1 +/
Я перейду на стабильный когда там появятся все необходимые мне фичи. Это включает как минимум

#![feature(alloc_error_handler)]
#![feature(allocator_api)]
#![feature(asm_const)]
#![feature(asm_sym)]
#![feature(associated_type_defaults)]
#![feature(const_btree_new)]
#![feature(const_char_from_u32_unchecked)]
#![feature(const_maybe_uninit_as_mut_ptr)]
#![feature(const_mut_refs)]
#![feature(const_ptr_write)]
#![feature(const_trait_impl)]
#![feature(core_ffi_c)]
#![feature(default_alloc_error_handler)]
#![feature(generic_arg_infer)]
#![feature(extern_types)]
#![feature(iter_advance_by)]
#![feature(iter_collect_into)]
#![feature(iterator_try_collect)]
#![feature(naked_functions)]
#![feature(negative_impls)]
#![feature(never_type)]
#![feature(nonnull_slice_from_raw_parts)]
#![feature(once_cell)]
#![feature(panic_abort)]
#![feature(panic_info_message)]
#![feature(ptr_metadata)]
#![feature(raw_ref_op)]
#![feature(result_flattening)]
#![feature(slice_ptr_get)]
#![feature(slice_ptr_len)]
#![feature(start)]
#![feature(stmt_expr_attributes)]
#![feature(strict_provenance)]
#![feature(trait_alias)]
#![feature(trusted_len)]
#![feature(type_alias_impl_trait)]
#![feature(unsize)]

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #231 Ответы: #256, #305, #364

242. Сообщение от Аноним (242), 17-Дек-22, 00:28   –1 +/
Реч идет о фактической адресации а не о "сахарке" который вам компилятор подсыпал.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #198 Ответы: #286

243. Сообщение от Аноним (93), 17-Дек-22, 01:20   +/
Несомненно все люди должны прислушаться к мнению такого компетентного и уважаемого эксперта
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #189

244. Сообщение от Аноним (93), 17-Дек-22, 01:26   –2 +/
В отношениях многие опеннет эксперты предпочитают заниматься аутокопрофилией.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #166 Ответы: #245

245. Сообщение от Аноним (93), 17-Дек-22, 01:27   –2 +/
Что неудивительно, потому что это сущность опеннет экспертов
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #244

249. Сообщение от Аноним (249), 17-Дек-22, 07:57   +/
Стремится по сложности к Ada, F90 и PL/1.
Думаю, и будущее его ждет ровно по стопам предшественников - частичные реализации, язык "для избранных", полнотой синтаксиса владеют не только лишь все.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #257, #259, #268

251. Сообщение от Аноним (93), 17-Дек-22, 09:15   –3 +/
Эти?
https://www.rfc-editor.org/rfc/rfc2052

https://www.rfc-editor.org/rfc/rfc3085

Но интересно, почему разработчики rust выбрали именно такие номера

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

252. Сообщение от Аноним (93), 17-Дек-22, 09:22   +/
Потому что у них последовательно добавилось более 3300 предложений 😞
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #251

253. Сообщение от минона (?), 17-Дек-22, 09:33   +1 +/
Вы его давно крайний раз собирали? Раста там... много...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #183 Ответы: #337

254. Сообщение от Аноним (153), 17-Дек-22, 11:14   +/
RFC - не стандарты, это "Request for Comments".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #239 Ответы: #255

255. Сообщение от Аноним (153), 17-Дек-22, 11:17   +/
Иными словами, RFC - "тема для обсуждения". И уж никак не стандарт.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #254 Ответы: #304

256. Сообщение от Аноним (153), 17-Дек-22, 11:20   +/
> когда там появятся
> #![feature(alloc_error_handler)]

Прошло 16 лет разработки...

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

257. Сообщение от Аноним (153), 17-Дек-22, 11:21   +/
Язык Ада просто няшка по сравнению с растом!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #249

258. Сообщение от Аноним (153), 17-Дек-22, 11:25   +1 +/
Там немного другое окончание: фрактадopacт.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #221

259. Сообщение от Facemaker (?), 17-Дек-22, 11:27   +/
>Думаю, и будущее его ждет ровно по стопам предшественников

Очень может быть. У предшественников (Си, C++) были периоды адекватности, когда они являлись лучшим инструментом в той или иной области. Если у Раста будет такой период — это успех. А потом да, усложнится и будет вытеснен другим инструментом. Это нормально, это эволюция технологии (подробнее у Лема).

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

260. Сообщение от Facemaker (?), 17-Дек-22, 13:05   +/
>Прошло 16 лет разработки...

Типичный комментарий опеннетного эксперта :).

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

261. Сообщение от Вы забыли заполнить поле Name (?), 17-Дек-22, 13:25   +1 +/
>> когда там появятся
>> #![feature(alloc_error_handler)]
> Прошло 16 лет разработки...

Не надо рушить веру детей в безопасного деда мороза

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

263. Сообщение от Вы забыли заполнить поле Name (?), 17-Дек-22, 13:28   +/
>>Думаю, и будущее его ждет ровно по стопам предшественников
> Очень может быть. У предшественников (Си, C++) были периоды адекватности, когда они
> являлись лучшим инструментом в той или иной области.

Пфффф. Они и сейчас являются таковыми. Докажи обратное. Если раст лучший, то почему за 16 лет никто на нем не написал свое РАБОЧЕЕ ядро?

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

267. Сообщение от Аноним (267), 17-Дек-22, 15:22   –1 +/
Ты такой типичный что мы знаем все твои комментарии наперед.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #260

268. Сообщение от Аноним (267), 17-Дек-22, 15:23   +/
Отличный язык для того чтобы показать, а смотрите как я могу. Сделать простую вещь, но с подвыподвертом.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #249 Ответы: #271

271. Сообщение от Аноним (271), 17-Дек-22, 16:18   +/
Опеннет эксперты делятся своими фантазиями о языках программирования
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #268 Ответы: #289

273. Сообщение от fuggy (ok), 17-Дек-22, 18:49   +1 +/
Я просто интересуюсь. Вам известно такая фраза как вычисление выражения?
Например, 2 вычисляется в целочисленное число 2. Тип выражения int. (2 + 3) вычисляется в 5. Тип выражения int.
Литерал "Hello world" вычисляется в объект типа String.
Вот и тип выражение for(;;) {} имеет тип !. Пример для rust `fn foo() -> ! { loop { } }`
Конструкция throw new Exception() имеет тип !. Вот и тут есть литерал, который фактически бросает ошибку и имеет тип !. При этом тип ! является подтипом всех типов, что важно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #235 Ответы: #333

275. Сообщение от Анонн (?), 17-Дек-22, 23:15   +1 +/
О, свидетели 16 лет подтянулись...
Уже написали рабочее ядро. Можешь даже на свой комп поставить.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #263 Ответы: #282, #310

276. Сообщение от Led (ok), 18-Дек-22, 01:25   +/
>В реальности "принятие" происходит редко.

Естественно, наблюдаемые редко до него доживают.

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

282. Сообщение от Аноним (153), 18-Дек-22, 03:39   –2 +/
Оно не работает. Только в виртуалке.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #275

283. Сообщение от Нанонимусemail (?), 18-Дек-22, 04:30   +/
Стоит признать, раст слишком немощьный для низкоуровневого программирования:
- Каст &[u16] в &[u8] невозможен без сторонних библиотек
- Нет литералов для null terminated string
- У половины контейнеров нет типового параметра для кастомного аллокатора, например у String
- Сконкатенировать два массива - непосильная для раста задача: нельзя написать тип [T; N + M]
Ну и так далее. Банальные вещи, которые в C++ есть давно и никто даже не задумывается, что этого вообще может не быть. Но зато в расте есть async, конечно, это намного важнее чем скастить или конкатенировать байты. Ведь это именно то, что мы хотим на низкоуровневом языке без сборщика мусора: писать асинхронный код!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34 Ответы: #302

284. Сообщение от Аноним (284), 18-Дек-22, 09:30   +/
Можно, только загрузка их займет не один такт а два.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #219

285. Сообщение от Аноним (284), 18-Дек-22, 09:31   –2 +/
Ну так и писали бы inlineconst. Что народ ложной сущностью привлекать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #220

286. Сообщение от Советский инженео (?), 18-Дек-22, 09:33   +1 +/
>Реч идет о фактической адресации а не о "сахарке" который вам компилятор подсыпал.

Речь как раз то о сахарке. И о его количестве в разньіх ЯП.
И в єтом контексте насавший топик соврал 2 раза.

Во первьіх, даже в асемблере переменньіе єто уже не просто именованньіе адреса (там уже есть инфа про размер переиенной, байт, полуслово, слово), а в С так и подавно. В С у переменньіх есть типьі.

Практически єто значит, что вьіхлоп у такого кода: "c = a + b;" будет разеньій в зависимости от типов переменньіх.  А если учесть что компилятор оптимизирущий, то может оказаться что у переменной с нет адреса, потому что ее просто вькинуло при оптимизации.

И про раст, бред про ссьілки. Знаток "сахара" уж должен то понимать что ссьілка - єто сахарок компилятора над указателем.


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

287. Сообщение от Аноним (284), 18-Дек-22, 09:36   –4 +/
В дополнение может кто ответить. Читал что раньше в раст были свои реализации потоков, а теперь нативные операционной системы. То есть программисту надо знать особенности потоков в ОС? Так и пишите не многопоточность, а поддержка объектной модели пригодной для многопоточности. Рекламы в раст больше чем что-то особенного. Свой синтаксис и включение наработок из других языков.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #220 Ответы: #298

288. Сообщение от Аноним (284), 18-Дек-22, 09:43   +/
Это к тому что ЯП создателем был назван по мотивам семейства грибов. Смотрел сериал Элементарно, так вот в оном эпизоде был преподаватель которой учеников просвещал при помощи грибов. Просто промелькнула ассоциация )
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #229

289. Сообщение от Аноним (284), 18-Дек-22, 09:46   +/
Смысл Вашего поста не понятен, скромный Вы наш.) Пусть скромными будут другие и мнения свои прикусят?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #271

297. Сообщение от лул (?), 18-Дек-22, 13:25   +1 +/
По-моему, лучший перевод trait'а - поведение.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #132

298. Сообщение от warlock66613email (ok), 18-Дек-22, 13:28   +1 +/
> То есть программисту надо знать?

Да, программисту желательно хоть чего-то немножко знать.

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

299. Сообщение от warlock66613email (ok), 18-Дек-22, 13:34   +/
> Так что, возможно, и на const  можно получить какой-то адрес. Но физического смысла в нем не будет.

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

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

300. Сообщение от Прохожий (??), 18-Дек-22, 14:15   +/
Да где уж ему с плюсами в "красоте" сравниться.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28

301. Сообщение от Прохожий (??), 18-Дек-22, 14:23   +/
Уже вполне очевидно, за этим языком будущее. Допускаю, что каких-то возможностей в нем пока не хватает, но он уже вполне себе годный для написания большого класса программ и библиотек, что и показывает динамика развития.

Избегать прогресс до сих пор мало у кого получалось долго, а Rust - это прогресс. Поэтому схема полностью рабочая, нравится это луддитам или нет.

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

302. Сообщение от Прохожий (??), 18-Дек-22, 14:47   +/
Стоит признать, что очередной опеннетный эксперт ничего не понимает в идеологии языка в частности и в системном программировании вообще. Говоря простыми словами, сел в лужу.

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

Какие ещё литералы, и зачем они нужны для null terminated string? Собственно, как и сами эти строки, которые есть ничто иное, как очередной костыль, придуманный когда-то от безысходности, и который приводит к куче багов с переполнением буфера.

Объединять два массива в Rust, конечно же, можно, только делать это стоит с большой осторожностью, потому что происходит всё в куче (для динамических массивов).

Ну и так далее.

Есть такая ОС Redox. Написана полностью на Rust. Гугл недавно рапортовал, что использует Rust в ОС Android. Линус согласился принимать код на Rust. Если это не системное программирование, то что?

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

303. Сообщение от Прохожий (??), 18-Дек-22, 15:13   +/
Теперь понятно, что ты - пустопорожний балабол. А Редокс вполне себе на реальном железе работает https://www.redox-os.org/screens/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #128

304. Сообщение от Прохожий (??), 18-Дек-22, 15:21   –1 +/
Иными словами, отсутствие стандарта в общепринятом понимании этого слова (отдельный документ) не помешало однако создателям GCC добавить поддержку Rust. Поэтому как бы аргумент "нет стандарта" уже совсем не аргумент.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #255 Ответы: #368

305. Сообщение от Прохожий (??), 18-Дек-22, 15:25   +/
Отрасль много потеряет без тебя, поэтому весь коллектив разработчиков завтра же кинется дорабатывать так необходимые гениальному программисту всех времён и народов фичи.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #241 Ответы: #318

308. Сообщение от Аноним (308), 18-Дек-22, 15:32   +/
Сегодня свершилось - я нашел полезную для себя программу на Rust

https://github.com/sourcebox/dfu-buddy

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

310. Сообщение от Вы забыли заполнить поле Name (?), 18-Дек-22, 15:34   –1 +/
> О, свидетели 16 лет подтянулись...
> Уже написали рабочее ядро. Можешь даже на свой комп поставить.

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

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

312. Сообщение от Нанонимусemail (?), 18-Дек-22, 15:35   +/
> Каст правильно невозможен

Почему? В чём принципиальная проблема? Какое ещё переполнение? Что мешает при касте паниковать или возвращать Err в случае переполнения? Эта операция вполне легальна в раст, только для неё нужно подключить дополнительную библиотеку:
https://play.rust-lang.org/?version=stable&mode=debug&editio...

Вот пример того, как просто это делается. Только этого нет в std, хотя часто нужная вещь. Причём тут Redox и Linux? Можно я свой код буду на расте писать, а не ядра ОС всякие? Я говорю про свой опыт использования и уверен, много кому нужно то же самое. К чему эта неуважительная риторика про "сел в лужу"? Я стараюсь объективно взглянуть на язык, извини, что я не фанатик, как многие, кто любят раст.

Сишные литералы нужны, само собой, чтобы взаимодействовать с Сишными библиотеками. Странно, что это нужно объяснять. Сейчас в расте приходится делать Си-строку из &str, а без аллокации это невозможно, так как нет места под нулевой байт, соотвественно это вредит производительности.

>> потому что происходит всё в куче (для динамических массивов)

Я привёл пример типа [T; N + M] - что является обычным массивом, не динамическим. Опять же, странно что растер этого не понимает и путает его с Vec<T>.

Вообще, это странно выгораживать подобные недостатки языка тем, что якобы это небезопасно и вообще не нужно. Я уверен, это можно сделать и этот функционал относительно не сложен. Ну уж точно не сложнее async, но почему-то разработчики языка именно так расставили приоритеты, сделав раст труднопримениым на практике. Конечно, есть Redox, Linux и Android - только вопрос в том, сколько там unsafe? Зачем мне писать на языке, где всё что мне нужно делается через unsafe? Почему бы сразу не взять для этого unsafe язык вроде Zig или C++?

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

313. Сообщение от Аноним (313), 18-Дек-22, 16:56   +1 +/
>> О, свидетели 16 лет подтянулись...
>> Уже написали рабочее ядро. Можешь даже на свой комп поставить.
> Ты наверное уже поставил и пишешь из под нее?

С твоей логикой (и руками) и макось с какой-нибудь солярко-бздой - "нирабоичии!".


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

318. Сообщение от warlock66613email (ok), 18-Дек-22, 19:50   +/
Что за наезд на пустом месте?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #305

324. Сообщение от Аноним (324), 18-Дек-22, 21:14   +/
Ты поставил или нет? А то с твоей логикой ты по утрам пьешь коньяк и избиваешь жену.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #313

327. Сообщение от Аноним (327), 18-Дек-22, 23:39   +/
> Пфффф. Они и сейчас являются таковыми. Докажи обратное. Если раст лучший, то почему за 16 лет никто на нем не написал свое РАБОЧЕЕ ядро?

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

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

328. Сообщение от Проходил мимо (?), 19-Дек-22, 08:16   +/
Мне вот недавно потребовалось выделить под буфер кусок динамической памяти, размер которого не известен на стадии компиляции. То, что в Си элементарно делается при помощи malloc() а в Си++ при помощи new. И знаете, я был в шоке, когда погрузился в подробности этого процесса в Rust и выяснил, что просто так это сделать невозможно. Мы можем выделить только массив, размер которого известен на этапе компиляции. Это 3.14сец, товарищи. В итоге я вынужден был использовать вектор с unsafe блоком для принудительного изменения его длины. Можно было также использовать другой костыль Vec::as_mut_slice() но это те же яйца, только сбоку. Не будет ли любезен претендующий на понимание идеологии и системного программирования уважаемый джинн ответить, какого хера для реализации одной из повсеместно используемых базовых операций нужны такие танцы с бубном?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #302 Ответы: #335, #340

329. Сообщение от Проходил мимо (?), 19-Дек-22, 08:34   +/
sendmail.cf - это уже за гранью добра и зла.
На мой взгляд, нельзя так над людьми издеваться.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #124

330. Сообщение от Вратокол (?), 19-Дек-22, 09:27   –1 +/
Вы сами поняли смысл того, во что буквы сложили?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #240

331. Сообщение от freecoder (ok), 19-Дек-22, 10:30   +1 +/
Раз в полтора месяца. С момента релиза версии 1.0 в 2015 году, каждые 6 недель выходят минорные релизы. Пора бы уже привыкнуть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

332. Сообщение от freecoder (ok), 19-Дек-22, 10:43   +/
А почему вы не хотите взять сырые указатели и скастить их? Почему вы хотите кастить именно ссылки, для которых запрещены небезопасные операции by design?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #312 Ответы: #339

333. Сообщение от yet another anonymous (?), 19-Дек-22, 11:03   +1 +/
Вот можете же, когда прижмут. "Возвращает тип" --- ахинея; "возвращает объект типа" --- осмысленное.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #273

334. Сообщение от Аноним (334), 19-Дек-22, 11:51   –2 +/
Я уже видел где-то это...
Так с нодой такая же обкатанная тема была, ура евентлуууупппп
Все засуетились начали переписывать чето, и спустя 10 лет дошло что это калл
Вышел гошка, та же песня, все начали восхвалять, это же гугл, все бегом переписывать на гошку.
Опять прозрение...
Вышел раст, ну как его еще пропиарить, ну занесли чутка линузу, он в ядро его кинул, все опять урааа, все бегом на раст переписывать. Он кста Линузу еще боком выйдет, уже нарушил правило консистентности системы. Нахер там не нужен в ядре.
Синтаксис просто солянка из всех яп надерганная. Каждый кодер знает, что как удобно саджест на точке когда, а не эта фиш нотация. По языку видно что хоум пет проджект выкатили хомякам.
Для повседнева питон, для ентерпрайза сишарпик, для системного сишка, все остальное от лукавого, поделки для хомяков.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #346

335. Сообщение от freecoder (ok), 19-Дек-22, 12:50   +/
В Rust можно динамически выделять память руками, просто нужно иметь ввиду, что придется самому определить лайаут, скастить указатели и обеспечить инициализацию памяти. Это unsafe операции, так что тут ответственность ложится на плечи программиста:

use std::{alloc::{alloc, Layout}, slice};

fn main() {
    let n = 1000;
    let a = unsafe {
        let layout = Layout::array::<i32>(n).expect("Layout overflow");
        let ptr = alloc(layout) as *mut i32;

        ptr.write_bytes(0, n);
        slice::from_raw_parts(ptr, n)
    };
    
    println!("{a:?}");
}

https://play.rust-lang.org/?version=stable&mode=debug&editio...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #328 Ответы: #338

336. Сообщение от freecoder (ok), 19-Дек-22, 13:25   +/
Для работы с сишными строками есть типы CString и CStr. Вы можете сконструировать CStr из байтового строкового литерала:

use std::ffi::CStr;

const MSG: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"Hello\0") };

Но это небезопасная операция (нет гарантии, что ваша последовательность байт обязательно заканчивается нулём). Но вы можете использовать простой макрос c_str чтобы избавиться от unsafe:

const MSG: &CStr = c_str!("Hello");
https://play.rust-lang.org/?version=stable&mode=debug&editio...

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


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

337. Сообщение от Максим (??), 19-Дек-22, 13:43   +/
Но и С++ не мало...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #253

338. Сообщение от Проходил мимо (?), 19-Дек-22, 15:38   +/
>[оверквотинг удален]
>         let layout = Layout::array::<i32>(n).expect("Layout
> overflow");
>         let ptr = alloc(layout)
> as *mut i32;
>         ptr.write_bytes(0, n);
>         slice::from_raw_parts(ptr, n)
>     };
>     println!("{a:?}");
> }
> https://play.rust-lang.org/?version=stable&mode=debug&editio...

Да, подобный костыль тоже возможен, но то, что это все вообще требуется говорит о том, что далеко не все там продумано должным образом. Ибо операция выделения буфера произвольного размера в реальном низкоуровневом коде встречается настолько часто, что средство для этого просто обязано быть простым и понятным. Нужно что-то типа fn  alloc_slice(size: usize) -> Option<Box[u8]> и это что-то должно быть в стандартной библиотеке а не делаться на коленке в с применением unsafe блоков

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

339. Сообщение от Нанонимусemail (?), 19-Дек-22, 16:20   +/
Можно мне объяснить, чего небезопасного в касте &[u16] в &[u8]? Я показал пример, где это делается без всякого unsafe кода. Да, внутри там всё равно unsafe, но снаружи безопасный api, как и многое в std. Что принципиально мешает так сделать?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #332 Ответы: #345

340. Сообщение от Нанонимусemail (?), 19-Дек-22, 16:31   +/
А почему бы не выделить нужную память вектором Vec<u8> или Box<[u8]>?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #328 Ответы: #348

341. Сообщение от Нанонимусemail (?), 19-Дек-22, 16:40   +/
Спасибо за совет. Однако, видимо с точки зрения разработчиков языка создание сишных строк настолько редкая и ненужная операция, что не то что сишные литералы отсутствуют в языке, даже подобного макроса нет в std. Не понимаю что принципиально мешает это сделать?
В итоге получается вот такой неоптимальный код при вызове сишных библиотек:
https://github.com/grovesNL/glow/blob/main/src/native.rs#L1200
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #336 Ответы: #343

342. Сообщение от Аноним (342), 19-Дек-22, 20:50   +/
Речь о распространенности и схожести синтаксиса. В случае чего, не нужно много переучиваться
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #85

343. Сообщение от freecoder (ok), 19-Дек-22, 22:23   +/
> В итоге получается вот такой неоптимальный код при вызове сишных библиотек:
> https://github.com/grovesNL/glow/blob/main/src/native.rs#L1200

В этом месте по другому и не сделать, тут же не литерал используется, а строковый срез &str. Так что вам все равно нужно аллоцировать строку заново, чтобы добавить ещё один
символ в конце.

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

344. Сообщение от freecoder (ok), 19-Дек-22, 22:36   +/
> Нужно что-то типа fn  alloc_slice(size: usize) -> Option<Box[u8]>

Если вам нужен Box<[u8]>, то делайте так:


vec![0; n].into_boxed_slice()

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

345. Сообщение от freecoder (ok), 19-Дек-22, 22:44   +/
> Что принципиально мешает так сделать?

Ничего не мешает. Просто всего в std не утащишь. Если у вас есть понимание, что это нужно в std и в каком именно виде оно там должно быть - создайте issue.

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

346. Сообщение от Вы забыли заполнить поле Name (?), 20-Дек-22, 00:22   +/
> Так с нодой такая же обкатанная тема была, ура евентлуууупппп
> Все засуетились начали переписывать чето, и спустя 10 лет дошло что это
> калл

Как бы технология стабильна, на ней пишут и дальше, а сам проект под крылом Linux Foundation. И да, libuv такой кал, что его используют Julia или neovim.

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

Эмм. На го дофига чего пишут, особенно в облачных технологиях.

> для ентерпрайза сишарпик

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

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

347. Сообщение от Хелоо Ворлд (?), 20-Дек-22, 04:34   –1 +/
Сектант? Какое время отнимать ?
Весь фин сектор от бирж до банкинга на джаве и шарпах.
Весь стек апишек из каропки.

Если противопоставить раст и сишку, то раст даже не зеро кост, он ван фрии кост, зачем пипл наябывают этим, непросвещенную в подкапотные моменты публику. Дизайна нет у языка. Синтаксис грязный, кучу атрибутов. Был бы дизайн френдли, было бы все по внятным слоям апи.  Асинхронщина сырая совсем. Ансейф без борроу чекера = та же сишка. Не реди продакшен увы. Нвим, хеликс, пару бд типа тика пока это все поделки для хоум юзинга.
Может к 2 версии нормальная стд будет, асинхронщина, аби бинарей, и прочее , а пока онли фан юзерспейс поделки на клапе


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

348. Сообщение от Проходил мимо (?), 20-Дек-22, 07:27   +/
> А почему бы не выделить нужную память вектором Vec<u8> или Box<[u8]>?

Выше написано, что я так и сделал. Но, в данном случае, это лишняя сущность, которую мы плодим без надобности. Собственно, чтобы было более понятно, вот текущий код:


    fn  read_data_block(&mut self)-> Option<usize>
    {
        let mut r : Option<usize> = None;
        //  Флаг повторного считывания даных в случае, если функция была
        //  прервана сигналом (ErrorKind::Interrupted)
        let mut read_flag = true;

        while   read_flag
        {
            //  Мы используем внутренний буфер вектора как мутабельный слайс
            match   self.data_src.read(&mut self.buf.as_mut_slice())
            {
                //  В случае успеха возвращает количество считанных байт
                Ok(n)  =>
                {
                    //  Повторное считывание не требуется
                    read_flag = false;
                    //  Установим новое количество байт в векторе, так как
                    //  он сам ничего не знает о том, что в него были
                    //  считаны данные извне
                    //  Эта операция считается небезопасной, поэтому
                    //  используем unsafe блок
                    unsafe
                    {
                        self.buf.set_len(n);
                    }
                    //  Подготовим возвращаемый результат
                    if n > 0 { r = Some( n ); }
                },
                Err(e) =>
                {
                    if e.kind() != ErrorKind::Interrupted
                    {
                        read_flag = false;
                        self.io_error = Some( e.kind() );
                    }
                }
            }
        }
        //  Вернем результат считывания
        r
    }


Он требует доработки, чтобы еще была правильно обработана ошибка обрыва Пипы, но, в целом, вполне рабочая.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #340 Ответы: #350, #358

349. Сообщение от Нанонимусemail (ok), 20-Дек-22, 11:52   +/
А почему авторы библиотеки решили принимать &str, а не &CStr?
Уж не потому ли, что нормальной поддержки сишных строк нет и проще сделать так?
Это пример к слову о "ненужности" си-строк. При всём моём уважении к расту и его сообществу, поддержка сишных библиотек сделана откровенно плохо. У C++ и Zig в этом плане гораздо более существенные преимущества, хотя и языки сами по себе небезопасны.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #343 Ответы: #356, #357

350. Сообщение от Нанонимусemail (ok), 20-Дек-22, 12:15   +/
А для чего тут self.buf.set_len(n)?
Можно после прочтнения в буффер взять слайс у &self.buf[..n] и получится то же самое, только без unsafe. Если нужно получать как результат именно Vec<u8>, можно позвать безопасный метод self.buf.resize(n, 0) или self.buf.truncate(n) который сделает то же самое что и unsafe аналог.

Ещё у трейта Read есть вспомогательные методы, например read_exact
https://doc.rust-lang.org/std/io/trait.Read.html#method.read...
Которые игнорируют ErrorKind::Interrupted и продолжают читать дальше. Возможно, в вашем случае один из подобных вспомогательных методов упростил бы код

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

351. Сообщение от Вы забыли заполнить поле Name (?), 20-Дек-22, 13:43   +2 +/
> Весь фин сектор от бирж до банкинга на джаве и шарпах.

Типичная черта местных экспертов, что они всему верят и даже не пытаются проверить. Например, tradingview, alpaca и даже тинек используют go.

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

356. Сообщение от freecoder (ok), 22-Дек-22, 10:23   +/
> А почему авторы библиотеки решили принимать &str, а не &CStr?
> Уж не потому ли, что нормальной поддержки сишных строк нет и проще сделать так?

Это уже вопрос к авторам библиотеки. Написать &CStr вместо &str не намного сложнее, не находите?

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

357. Сообщение от freecoder (ok), 22-Дек-22, 10:29   +/
> Это пример к слову о "ненужности" си-строк. При всём моём уважении к
> расту и его сообществу, поддержка сишных библиотек сделана откровенно плохо. У
> C++ и Zig в этом плане гораздо более существенные преимущества, хотя
> и языки сами по себе небезопасны.

Эти вещи взаимосвязаны: многие вещи в Си (включая строки) небезопасны by design. Они плохо вписываются в подходы обеспечения безопасности в Rust. Поэтому и не поддерживаются прозрачно, чтобы их использовать нужно приложить усилия. То есть их следует использовать, если нет других альтернатив.

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

358. Сообщение от freecoder (ok), 22-Дек-22, 10:56   +/
А что будет делать ваш код, если self.buf будет нулевой длины?

Вот вариант блочного чтения без unsafe:


fn read_data_block(&mut self) -> Option<usize> {
    let mut bytes_read = 0;
    let mut buf = self.buf.as_mut_slice();

    while !buf.is_empty() {
        match self.data_src.read(buf) {
            Ok(0) => break,
            Ok(n) => {
                bytes_read += n;
                buf = &mut buf[n..];
            }
            Err(err) => if err.kind() != ErrorKind::Interrupted {
                self.io_error = Some(err.kind());
                break;
            }
        }
    }
    
    self.buf.truncate(bytes_read);
    if bytes_read > 0 { Some(bytes_read) } else { None }
}


Только нужно помнить, что до вызова этого метода self.buf должен иметь нужный вам размер.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #348

359. Сообщение от Нанонимусemail (ok), 22-Дек-22, 12:33   +/
> Написать &CStr вместо &str не намного сложнее, не находите?

Написать то не сложно, только как потом пользователи библиотеки будут вызывать эти функции? Либо макрос придётся свой городить, либо делать строку из CString, ну либо CStr::from_bytes_with_nul(b"hello\0").expect("тут нул-терминейтед-стринг, я клянусь"). В общем, неудобно это, проще принимать &str.

> небезопасны by design

Тогда интересно, в чём именно их небезопасность? Растовый тип CStr столь же безопасный как и другие типы, с учётом отдельных unsafe методов которые так же есть и у родных растовых строк. Или компилятор не в состоянии проверить инвариант литерала строки, например чтобы в середине не было нулевых байт? При этом проверять валидность utf-8 он прекрасно может

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

360. Сообщение от freecoder (ok), 23-Дек-22, 10:40   +/
Я думаю авторы библиотеки рассчитывали, что пользователи в своем коде будут оперировать динамическими Rust-строками, поэтому при вызове сишной функции всё равно нужно будет делать новую аллокацию. Эта проблема не связана с отсутствием синтаксиса для литералов сишных строк, она скорее о том "почему в Rust по-умолчанию принято использовать строки не такие как в Си".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #359

361. Сообщение от freecoder (ok), 23-Дек-22, 19:48   +/
Кстати, есть RFC и issue для добавления сишных строковых литералов: https://github.com/rust-lang/rust/issues/105723
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #359

362. Сообщение от freecoder (ok), 23-Дек-22, 20:01   –1 +/
> Cargo.lock кто будет обновлять после удаления?

Cargo.lock вообще руками трогать не надо, он обновляется автоматически самим cargo (всегда так было).

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

363. Сообщение от freecoder (ok), 23-Дек-22, 20:08   +/
> Зачем этот язык всё время форсят, если даже его создатель Мозилла не
> смогла переписать на нём свой браузер?

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

1) Сменилось руководство и новый менеджмент сместил фокус компании и бизнесс-ориентиры.

2) Servo утонул в растовом легаси. Проблема в том, что проект развивался вместе с языком, который в то время очень быстро и радикально менялся. Поэтому к финалу, когда Rust уже пообкатался и стабилизировался, возникла потребность переписать Servo.

Таким образом, итог Servo - развитие языка и экосистемы Rust (он им очень во многом помог), плюс созданы некоторые компоненты, которые добавили в Firefox (WebRender, CSS engine и пр.).

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

364. Сообщение от freecoder (ok), 23-Дек-22, 20:14   +/
Для разработки чего вы используете Rust со всеми этими фичами?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #241 Ответы: #365

365. Сообщение от warlock66613email (ok), 24-Дек-22, 18:09   +/
> Для разработки чего вы используете Rust со всеми этими фичами?

Так, мелочёвка всякая для себя или почти для себя. Пет-проекты в общем. В основном два глобальных направления: 1) кроссплатформенная (Window, DOS, Linux и кто знает что ещё) игра-рогалик, 2) вспомогательные утилиты для модов на Morrowind, а так же метамоды — программы, которые запускаются на компьютере конечного пользователя и генерят мод (например https://www.fullrest.ru/files/espb).

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

366. Сообщение от burjui (ok), 25-Дек-22, 13:53   +/
Неопределённое поведение для местных экспертов - как радиация: раз не видно, не слышно и не пахнет - значит, ничего нет. Программа скомпилировалась и работает? Вот и чудненько.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #86

367. Сообщение от Вы забыли заполнить поле Name (?), 25-Дек-22, 22:38   +/
>> Cargo.lock кто будет обновлять после удаления?
> Cargo.lock вообще руками трогать не надо, он обновляется автоматически самим cargo (всегда
> так было).

Ты сообщения вообще прочитал? Вот воправил ты руками cargo.toml, а cargo.lock сам обновится без какой-либо команды?

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

368. Сообщение от Вы забыли заполнить поле Name (?), 25-Дек-22, 22:41   +/
> Иными словами, отсутствие стандарта в общепринятом понимании этого слова (отдельный документ)
> не помешало однако создателям GCC добавить поддержку Rust. Поэтому как бы
> аргумент "нет стандарта" уже совсем не аргумент.

Дааа, вот когда твоя программа на расте не будет собираться при переходе на gcc-шную версию, вот тогда ты вспомнишь про отстуствие стандарта.

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

369. Сообщение от wyry (?), 26-Дек-22, 13:22   +/
В C++ на самом деле не лучшее метапрограммирование, особенно, если сравнивать с языками, где оно спроектировано хорошо (например, LISP). Так что и ответ простой: C++ нужен и без метапрограммирования, это не самая сильная его часть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #209

370. Сообщение от freecoder (ok), 26-Дек-22, 20:35   +/
После изменения Cargo.toml при вызове команд cargo update, или cargo build, или cargo run и т.д. Cargo.lock обновится автоматически самим cargo.


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


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

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




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

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