The OpenNET Project / Index page

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



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

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

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

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

Оглавление

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


1. "Выпуск языка программирования Rust 1.69"  –9 +/
Сообщение от Аноним (1), 20-Апр-23, 22:57 
Сеть в стандартной библиотеке. Найс.
Ответить | Правка | Наверх | Cообщить модератору

3. "Выпуск языка программирования Rust 1.69"  +8 +/
Сообщение от НяшМяш (ok), 20-Апр-23, 23:28 
Всегда была.
Ответить | Правка | Наверх | Cообщить модератору

53. "Выпуск языка программирования Rust 1.69"  –6 +/
Сообщение от bOOster (ok), 21-Апр-23, 10:41 
Была абстракция - сокеты, которые можно было привязать к любому протоколу передачи данных. А тут IP гвоздями прибит - что в целом подтверждает абсолютную тупость создателей языка.
Ответить | Правка | Наверх | Cообщить модератору

57. "Выпуск языка программирования Rust 1.69"  +3 +/
Сообщение от НяшМяш (ok), 21-Апр-23, 10:52 
> Была абстракция - сокеты
> А тут IP гвоздями прибит

Вот было мороженое из молока. А тут Москвич китайский.

Всё что нужно знать про экспертов опеннета.

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

70. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Аноним (70), 21-Апр-23, 12:40 
Но, ведь, он и вправду китайский.
Ответить | Правка | Наверх | Cообщить модератору

88. "Выпуск языка программирования Rust 1.69"  +2 +/
Сообщение от Аноним (88), 21-Апр-23, 14:32 
А получился не Москвич, а какой-то Москвичезаменитель, неидентичный натуральному
Ответить | Правка | К родителю #57 | Наверх | Cообщить модератору

90. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от n00by (ok), 21-Апр-23, 14:35 
socket = boost::filesystem::file_type::socket_file,
Ответить | Правка | К родителю #53 | Наверх | Cообщить модератору

95. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от bOOster (ok), 21-Апр-23, 14:58 
> socket = boost::filesystem::file_type::socket_file,

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

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

98. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от n00by (ok), 21-Апр-23, 15:08 
Надо было раньше писать в Boost, пока в стандарт не приняли.
Ответить | Правка | Наверх | Cообщить модератору

130. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от bOOster (ok), 22-Апр-23, 09:40 
> Надо было раньше писать в Boost, пока в стандарт не приняли.

Так я об этом изначально и писал. Недоразработчикам ржи надо было использовать опыт 40+ летнего развития языков C/C++, но эти при*урки пердячим паром доходят через свое ан*льное отверстие. Причем еще и получается - так себе..

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

7. "Выпуск языка программирования Rust 1.69"  +1 +/
Сообщение от Аноним (7), 20-Апр-23, 23:43 
Как будто что-то плохое. Кроссплатформа как-никак. На сишке здесь бы пришлось завязаться на какой-нибудь нескучный glib.
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

33. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Аноним (33), 21-Апр-23, 08:24 
А что тогда графики и звука в стандартной библиотеки нету?
Ответить | Правка | Наверх | Cообщить модератору

48. "Выпуск языка программирования Rust 1.69"  +9 +/
Сообщение от Аноним (7), 21-Апр-23, 10:10 
Графика - это гуй? В разных операционках он слишком разный. Да что там - он разный даже внутри одной операционки (gtk/qt, x11/wayland). А концепт сети везде одинаковый: IP-адрес - он и в Африке IP-адрес. Башкой думай немного, хорошо?
Ответить | Правка | Наверх | Cообщить модератору

60. "Выпуск языка программирования Rust 1.69"  –4 +/
Сообщение от Аноним (60), 21-Апр-23, 11:49 
> А концепт сети везде одинаковый: IP-адрес - он и в Африке IP-адрес.

мамкин сетевик не подозревает что кроме IP сетей есть другие сети

https://www.5gtechnologyworld.com/internet-protocol-the-work.../

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

61. "Выпуск языка программирования Rust 1.69"  +6 +/
Сообщение от Аноним (7), 21-Апр-23, 12:12 
> мамкин сетевик не подозревает что кроме IP сетей есть другие сети

Это легко исправляется: читай соответствующие книги по сетевой модели OSI, и тогда ты перестанешь быть "мамкиным сетевиком". Затем вернись сюда через годик или два и отпишись, каким образом наличие "других сетей" мешает расту добавить стандартные средства по работе с популярным протоколом IP.

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

66. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Аноним (60), 21-Апр-23, 12:24 
> каким образом наличие "других сетей" мешает расту добавить стандартные средства по работе с популярным протоколом IP

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

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

74. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Аноним (74), 21-Апр-23, 12:57 
>> каким образом наличие "других сетей" мешает расту добавить стандартные средства по работе с популярным протоколом IP
> почему бы не добавить стандартные средства к другим популярным протоколам Wayland например?

Сравнил популярность вида "все ОС, от гайки и до венды" и "используется 30% от 2%"

> Ну просто сейчас корпорациям-основателям расты нужны дешёвые мамкины сетевики.

Они уже 20 лет назад были нужны, оналитег папкин ...


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

113. "Выпуск языка программирования Rust 1.69"  –1 +/
Сообщение от Аноним (60), 21-Апр-23, 16:38 
> Сравнил популярность вида "все ОС, от гайки и до венды" и "используется 30% от 2%"

реальное соотношение С vs Rust

> Они уже 20 лет назад были нужны

20 лет назад не было андроидов и айфонов и раст бананоедам не впихивали

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

120. "Выпуск языка программирования Rust 1.69"  +1 +/
Сообщение от Аноним (74), 21-Апр-23, 18:25 
> почему бы не добавить стандартные средства к другим популярным протоколам Wayland например?
>> Сравнил популярность вида "все ОС, от гайки и до венды" и "используется 30% от 2%"
> реальное соотношение С vs Rust

Реальный спрыг с неудобной темы ...

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

89. "Выпуск языка программирования Rust 1.69"  +2 +/
Сообщение от n00by (ok), 21-Апр-23, 14:33 
>> каким образом наличие "других сетей" мешает расту добавить стандартные средства по работе с популярным протоколом IP
> почему бы не добавить стандартные средства к другим популярным протоколам Wayland например
> ?

Потому что Аноним всё равно ничего не напишет с использованием этого протокола. И даже его описание не прочтёт.

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

63. "Выпуск языка программирования Rust 1.69"  –4 +/
Сообщение от Аноним (63), 21-Апр-23, 12:20 
Ок, но TCP/IP может не быть в ОС вообще, к примеру. Или быть, но API не является BSD sockets. Все равно будет работать? Сеть, как и графика, тоже бывает разная в разных ОС.

> он разный даже внутри одной операционки (gtk/qt, x11/wayland)

тулкиты и протоколы то тут причем, клован? Почему нет нативной графики в обход всех тулкитов и протоколов в стандратной библиотеке?

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

67. "Выпуск языка программирования Rust 1.69"  +4 +/
Сообщение от Аноним (7), 21-Апр-23, 12:32 
> Сеть, как и графика, тоже бывает разная в разных ОС.

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

> тулкиты и протоколы то тут причем, клован? Почему нет нативной графики в обход всех тулкитов и протоколов в стандратной библиотеке?

Потому что "графика" -- это понятие из имплементации, а не из RFC, клован.

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

75. "Выпуск языка программирования Rust 1.69"  +2 +/
Сообщение от Аноним (75), 21-Апр-23, 13:34 
> Ок, но TCP/IP может не быть в ОС вообще, к примеру

ну так в твою прогу при компиляции соотвественно данный кусок стандартной библиотеки и не вкомпилится, ибо не используется. В чем проблема? Это почти как:

"
- Мне положено мясо!
- Положено - ешь.
- Но оно не положено!
- Не положено - не ешь.
"

> Сеть, как и графика, тоже бывает разная в разных ОС.

Модель TCP/IP и пучок соответствующих отраслевых стандартов одинаков для всех иначе разные ОС не могли бы устанавливать друг с другом соединения и гонять байтики. Как оно там внутри будет реализовано - дело десятое.

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

69. "Выпуск языка программирования Rust 1.69"  –2 +/
Сообщение от keydon (ok), 21-Апр-23, 12:39 
Так и сетевая подсистема в разных операционках слишком разная, даже в разных версиях линуха.
С таким же успехом можно сказать концепт гуя тоже везде одинаков - везде поверхности рисовать и реакции пользователя отслеживать, чем собственно qt, gtk успешно занимаются даже с кроссплатформой.
Ответить | Правка | К родителю #48 | Наверх | Cообщить модератору

71. "Выпуск языка программирования Rust 1.69"  +1 +/
Сообщение от Аноним (7), 21-Апр-23, 12:48 
> сетевая подсистема в разных операционках слишком разная

Ага, как и файловые системы: одни case-sensitive, другие нет. Одни дают DAC, другие нет. Одни с xattrs, другие нет. Одни поддерживают subvolumes, другие нет. Вывод: срочно убираем файлы из стд библиотеки! Они слишком по-разному себя ведут!

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

73. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от keydon (ok), 21-Апр-23, 12:52 
>> сетевая подсистема в разных операционках слишком разная
> Ага, как и файловые системы: одни case-sensitive, другие нет. Одни дают DAC,
> другие нет. Одни с xattrs, другие нет. Одни поддерживают subvolumes, другие
> нет. Вывод: срочно убираем файлы из стд библиотеки! Они слишком по-разному
> себя ведут!

Могу с этим только согласиться.

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

150. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Советский инженер (?), 24-Апр-23, 01:50 
https://en.cppreference.com/w/cpp/filesystem  ну все, давай убирай.
Ответить | Правка | Наверх | Cообщить модератору

151. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от keydon (ok), 24-Апр-23, 11:44 
> https://en.cppreference.com/w/cpp/filesystem  ну все, давай убирай.

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

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

18. "Выпуск языка программирования Rust 1.69"  +4 +/
Сообщение от Иваня (?), 21-Апр-23, 06:09 
А что в этом плохого? В Python, Java, Go тоже и отлично.
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

24. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от AlexCr4ckPentest (ok), 21-Апр-23, 07:36 
> Сеть в стандартной библиотеке. Найс.

И что плохого?
во многих ЯП в стд есть модули для работы с сетью, ну кроме C и C++
Это удобно

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

30. "Выпуск языка программирования Rust 1.69"  –5 +/
Сообщение от Аноним (30), 21-Апр-23, 08:14 
В

> ЯП

не нужно совать то, что является функцией фреймворка.

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

40. "Выпуск языка программирования Rust 1.69"  +2 +/
Сообщение от AlexCr4ckPentest (ok), 21-Апр-23, 09:07 
> ...является функцией фреймворка

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

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

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

42. "Выпуск языка программирования Rust 1.69"  +4 +/
Сообщение от BeLord (ok), 21-Апр-23, 09:22 
Не надо иметь зоопарк фреймворков на типовые вещи, работа с сетью штука типовая. А то потом получается, что реально программа имеет две операции записи/чтения, а весит, как крыло Боинга и тащит кучу зависимостей.
Ответить | Правка | К родителю #30 | Наверх | Cообщить модератору

65. "Выпуск языка программирования Rust 1.69"  +1 +/
Сообщение от Аноним (63), 21-Апр-23, 12:23 
> А то потом получается, что реально программа имеет две операции записи/чтения, а весит, как крыло Боинга и тащит кучу зависимостей.

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

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

72. "Выпуск языка программирования Rust 1.69"  –1 +/
Сообщение от keydon (ok), 21-Апр-23, 12:49 
Наивные. Одним нужна либа с максимально производительной реализацией, другим нужно чтобы 192.168.36095 считался валидным ip адресом, третьи предпочтут 0000000001.0000000002.0000000003.000000004, четвертые 0xc0.0xa8.0x8c.0xff. И это мы еще не добрались до IPv6, подсетей, мультикастов, а если у нас не ip сеть....
Понятно, что 192.168.140.255 хватит в 99% случаев и возможно остальные варианты стоит прикопать, но это только пример одного вопроса реализации. И что-то мне кажется что выбор должен делать пользователь, а не язык должен указывать пользователю как жить.
Ответить | Правка | К родителю #42 | Наверх | Cообщить модератору

76. "Выпуск языка программирования Rust 1.69"  –1 +/
Сообщение от annonn (?), 21-Апр-23, 13:49 
ты не попал в эти 99% ?
ты как одинокая картошечка фри ?

ну, тогда ты всегда можешь написать свою библиотеку для "особенных" пользователей сети где будет разрешено 192.168.0000000003.0x8c
и пользоваться ею

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

100. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от keydon (ok), 21-Апр-23, 15:12 
> ты не попал в эти 99% ?
> ты как одинокая картошечка фри ?
> ну, тогда ты всегда можешь написать свою библиотеку для "особенных" пользователей сети
> где будет разрешено 192.168.0000000003.0x8c
> и пользоваться ею

Может мне еще свой одаренный язык для особенно одаренных написать? Постойте-ка, это же...

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

78. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Аноним (75), 21-Апр-23, 13:56 
> другим нужно чтобы 192.168.36095 считался валидным ... И это мы еще не добрались до IPv6

Что за бред. Есть стандартная отраслевая модель TCP/IP. Для IP4 и IP6. Там "все ходы расписаны". Для всех распространенных ОС, которые хотят взаимодействовать с другими ОС (особенно через Интернет), она одна и та же. Для 99.9% разработчиков, связанных с сетью хоть как-то, хоть косвенно (через чужие библиотеки), не нужно чтобы было нестандартно. Если ты хочешь такой бред, как написал - реализуешь свою собственную библиотеку. А стандартная библиотека языка реализует стандартную модель TCP/IP. Самую распространенную и востребованную.

> Одним нужна либа с максимально производительной реализацией

а вот тут ты и пишешь свои собственные костыли и подпорки, если стандартная не устраивает и у тебя есть силы и способности ее переплюнуть.

> а если у нас не ip сеть....

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

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

97. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от keydon (ok), 21-Апр-23, 15:03 
>> другим нужно чтобы 192.168.36095 считался валидным ... И это мы еще не добрались до IPv6
> Что за бред. Есть стандартная отраслевая модель TCP/IP. Для IP4 и IP6.
> Там "все ходы расписаны".

Не знаю что такое отраслевая модель TCP/IP (в отличии от просто модели TCP/IP). Но этот бред и есть ip адрес по RFP'шкам для IPv4, там указано 32 бита, а в каком представлении - не указано (то есть далеко не все ходы расписаны). Для IPv6 указано, но довольно замороченно, я бы не рискнул писать парсер по стандарту.

> тем более только свои костыли, вроде очевидно. И эта очевидная необходимость совсем-совсем
> не является аргументом не реализовывать в стандартной библиотеке отраслевые стандарты,
> нужные "в 99% случаев"

Но тогда стандартная библиотека становится не стандартной, а скорее встроенной. И это грозит новыми проблемами с определением что считается стандартным случаем, а что нет. Так сделали например в python'е и в обрезанных версиях python'а для микроконтроллеров (справедливости ради python и не был  спроектирован для микроконтроллеров) стандартная либа часто обрезанная и не всегда может запустить "стандартные" же скрипты. Для питона это скорее ССЗБ, но для плюсов например реализация стандартных регулярок вызвала массу (справедливого) негатива. Так может все же язык оставить языком, реализации реализациями, а либы либами и не смешивать их? Впрочем для раста и линтер с компилятором решили объединить, а я тут с какими-то философскими проповедями пришел.

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

102. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Аноним (88), 21-Апр-23, 15:35 
Для такого у тебя есть nostd. Там нет практически ничего и все что нужно приходится тащить либами.
В std с++ есть Algorithms, которым по такой логике тоже там не место. Но они так есть.
А в сишной - есть math.h, который должны лежать в отдельной мат либе что ли?
Ответить | Правка | Наверх | Cообщить модератору

104. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от keydon (ok), 21-Апр-23, 15:44 
> Для такого у тебя есть nostd. Там нет практически ничего и все
> что нужно приходится тащить либами.

Норм
> В std с++ есть Algorithms, которым по такой логике тоже там не
> место. Но они так есть.
> А в сишной - есть math.h, который должны лежать в отдельной мат
> либе что ли?

Да. Я и не защищаю си в этом контексте

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

108. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Совершенно другой аноним (?), 21-Апр-23, 16:23 
Касательно math.h - так и есть, есть физически отдельная мат.либа libm.a.
Ответить | Правка | К родителю #102 | Наверх | Cообщить модератору

115. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Аноним (88), 21-Апр-23, 16:47 
Эти технически отдельная либа (файл), но фактически это часть стандартной либы языка си
C99 standard (ISO/IEC 9899:1999): 7.12 Mathematics <math.h>
Т.е. sin/cos/etc. зачем-то запихали в std.
Ответить | Правка | Наверх | Cообщить модератору

129. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от n00by (ok), 22-Апр-23, 07:53 
Мало того - стандарт обязывает поддержку математики даже для freestanding implementation. А вот это как раз тот рантайм (как минимум, флаги FPU должны быть настроены), которого у Си якобы нет.
Ответить | Правка | Наверх | Cообщить модератору

133. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Совершенно другой аноним (?), 22-Апр-23, 11:26 
Стандарт описывает характеристики типов с плавающей запятой, там нет функций. Настройка флагов FPU идёт в fenv.h, который не обязателен для freestanding.
Ответить | Правка | Наверх | Cообщить модератору

135. "Выпуск языка программирования Rust 1.69"  +1 +/
Сообщение от n00by (ok), 22-Апр-23, 14:03 
> Стандарт описывает характеристики типов с плавающей запятой, там нет функций.

То есть имплементация поддерживает плавающий тип данных. Значит, может производить арифметические операции. Соответственно, при переключении контекста (потока исполнения) ОС вынуждена сохранять регистры FPU.

В ядре из соображений экономии времени и памяти FPU не используется (при необходимости принимаются дополнительные меры) и формально получается, что там не conforming.

> Настройка флагов FPU идёт в fenv.h, который не обязателен для freestanding.

fenv.h позволяет пользователю настроить по своему желанию.

FLT_ROUNDS из float.h implementation-defined, но при этом он одинаков при каждом запуске после трансляции, то есть имплементация должна дать гарантии.

в частности в glibc флаги настраиваются по цепочке __libc_init_first --> posixland_init --> __setfpucw

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

139. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Совершенно другой аноним (?), 22-Апр-23, 20:41 
>> Стандарт описывает характеристики типов с плавающей запятой, там нет функций.
> То есть имплементация поддерживает плавающий тип данных. Значит, может производить арифметические
> операции. Соответственно, при переключении контекста (потока исполнения) ОС вынуждена
> сохранять регистры FPU.

какие в freestanding потоки? и какая ОС?

> В ядре из соображений экономии времени и памяти FPU не используется (при
> необходимости принимаются дополнительные меры) и формально получается, что там не conforming.

Вы про ядро, а при чём тут компилятор?

>> Настройка флагов FPU идёт в fenv.h, который не обязателен для freestanding.
> fenv.h позволяет пользователю настроить по своему желанию.
> FLT_ROUNDS из float.h implementation-defined, но при этом он одинаков при каждом запуске
> после трансляции, то есть имплементация должна дать гарантии.
> в частности в glibc флаги настраиваются по цепочке __libc_init_first --> posixland_init
> --> __setfpucw

это реализовано в libc. У нас есть своя программа, которую можно назвать прошивкой, там ничего этого нет, и ничего от gcc, который компилирует эту программу мы не требуем.

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

141. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от n00by (ok), 23-Апр-23, 08:33 
>>> Стандарт описывает характеристики типов с плавающей запятой, там нет функций.
>> То есть имплементация поддерживает плавающий тип данных. Значит, может производить арифметические
>> операции. Соответственно, при переключении контекста (потока исполнения) ОС вынуждена
>> сохранять регистры FPU.
> какие в freestanding потоки? и какая ОС?

Если я делаю conforming implementation, приходится учитывать окружение, где будет запускаться собранная программа. Если мне надо обеспечить компиляцию хелловорда в пригодный для запуска в Linux образ ELF размером 1,5 Кб, и при этом сохранить поддержку библиотекой полезных программ, то возникает вопрос - а что делать с флагами FPU и соответствием стандарту. А Вы с какой целью интересуетесь?

>> В ядре из соображений экономии времени и памяти FPU не используется (при
>> необходимости принимаются дополнительные меры) и формально получается, что там не conforming.
> Вы про ядро, а при чём тут компилятор?

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

>>> Настройка флагов FPU идёт в fenv.h, который не обязателен для freestanding.
>> fenv.h позволяет пользователю настроить по своему желанию.
>> FLT_ROUNDS из float.h implementation-defined, но при этом он одинаков при каждом запуске
>> после трансляции, то есть имплементация должна дать гарантии.
>> в частности в glibc флаги настраиваются по цепочке __libc_init_first --> posixland_init
>> --> __setfpucw
> это реализовано в libc. У нас есть своя программа, которую можно назвать
> прошивкой, там ничего этого нет, и ничего от gcc, который компилирует
> эту программу мы не требуем.

Вопрос не в том, можно ли назвать прошивкой. Можно ли назвать используемую там библиотеку соответствующей стандарту имплеменатцией.

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

128. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от n00by (ok), 22-Апр-23, 07:49 
Алгоритмы с++  в std попали из библиотеки Степанова и Ли (СТЛ). Были они созданы как раз для "решения проблем Си" -- безопасной работы с массивами, наряду с контейнерами и итераторами. Это слой абстракции, а не реализация математики или работы с файлами (в частном случае сокетами). В других языках подобное встроено в язык, а не библиотеку. Впрочем, сокеты в std:: тоже добавили.
Ответить | Правка | К родителю #102 | Наверх | Cообщить модератору

157. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Someone (??), 29-Май-23, 08:46 
> 0000000001.0000000002.0000000003.000000004, четвертые 0xc0.0xa8.0x8c.0xff.

Верхний адрес не валидный, так как занимает 40 байт места. Нижний вполне нормальный адрес 192.168.140.255. В IPv4 четко прописаны использование 32 Битов или 4 байтов. То есть все адреса (комбинации нулей и единиц) от 0000 0000 0000 0000 до 1111 1111 1111 1111 (или от 0x00 0x00 0x00 0x00 до 0xFF 0xFF 0xFF 0xFF)

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

159. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от keydon (ok), 29-Май-23, 12:55 
> В IPv4 четко прописаны использование 32 Битов или
> 4 байтов. То есть все адреса (комбинации нулей и единиц) от
> 0000 0000 0000 0000 до 1111 1111 1111 1111 (или от
> 0x00 0x00 0x00 0x00 до 0xFF 0xFF 0xFF 0xFF)

Все верно. Это я и хотел сказать уважаемой публике.

>> 0000000001.0000000002.0000000003.000000004, четвертые 0xc0.0xa8.0x8c.0xff.
> Верхний адрес не валидный, так как занимает 40 байт места.

Но 0000000001.0000000002.0000000003.000000004 тоже может занимать 32 бита, если не считать первые нули значащими (что конечно конечно наркомания, но в IPv6 так и сделали, ну почти). Т.е. он тоже может быть валидным адресом. Можно пойти дальше и сделать адресом ツ
$ echo -n 'ツ' | xxd -b
00000000: 11100011 10000011 10000100
Добиваем до 4 байт (или наоборот отрезаем, если больше)
00000000 11100011 10000011 10000100
И оп, у нас валидный ip-адрес. Т.е. по сути все может быть ip-адресом в зависимости от парсера (таков путь неограниченных бинарных данных).

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

153. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Германemail (??), 25-Апр-23, 10:20 
А минусы есть?
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

12. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Вы забыли заполнить поле Name (?), 21-Апр-23, 01:44 
А ядро с какой версией работает?
Ответить | Правка | Наверх | Cообщить модератору

14. "Выпуск языка программирования Rust 1.69"  +1 +/
Сообщение от Аночик (?), 21-Апр-23, 03:02 
С той с которой скомпилируете модуль
Ответить | Правка | Наверх | Cообщить модератору

31. "Выпуск языка программирования Rust 1.69"  –1 +/
Сообщение от Аноним (30), 21-Апр-23, 08:15 
Один выше попутал ЯП с фреймворком. Другой попутал ЯП с компилятором. Контингент, однако.
Ответить | Правка | Наверх | Cообщить модератору

62. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от FF (?), 21-Апр-23, 12:17 
А третий просто демагог и нигде не работал и ни одной проги не написал.
Ответить | Правка | Наверх | Cообщить модератору

77. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Аноним (77), 21-Апр-23, 13:53 
Сходи поработай. И может прогу какую напиши в свободное время.
Ответить | Правка | Наверх | Cообщить модератору

47. "Выпуск языка программирования Rust 1.69"  +2 +/
Сообщение от наним (?), 21-Апр-23, 10:07 
Начиная с ядра 6.1 рекомендуют 1.62, т.к. используются нестабильные фичи Раста. С ворнингами разрешают и более свежие версии использовать, но говорят, что не факт, что всё будет хорошо. Недавно сделали патч с обновлением до 1.68.2 (https://www.phoronix.com/news/Linux-Kernel-Rust-1.68).
Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору

80. "Выпуск языка программирования Rust 1.69"  +1 +/
Сообщение от Вы забыли заполнить поле Name (?), 21-Апр-23, 14:02 
Ну и вот зачем такой язык в ядре? Чтобы обмазываться новеньким постоянно?
Ответить | Правка | Наверх | Cообщить модератору

21. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Аноним (21), 21-Апр-23, 06:29 
>Добавлена возможность использования флагов true и false в аргументах компилятора.

Теперь ещё проще скомпилировать не тру.

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

25. "Выпуск языка программирования Rust 1.69"  +1 +/
Сообщение от AlexCr4ckPentest (ok), 21-Апр-23, 07:38 
Что на этот раз сломали?
Ответить | Правка | Наверх | Cообщить модератору

87. "Выпуск языка программирования Rust 1.69"  +1 +/
Сообщение от Аноним (75), 21-Апр-23, 14:32 
Ленивый или троллить пытаешься или просто позвиздеть зашел?

Пройди в анонс, там зайди в "Others Changes"->"Rust". Там есть раздел "Compatibility Notes"

(ой, вдруг заблудишься):
https://github.com/rust-lang/rust/blob/stable/RELEASES.md#co...

но тебе ведь всё этого не нужно, верно?

Всё же, помечУ бисер немного. Очень-очень поверхностно отчитаюсь. Полез проверить заброшенный 2 года назад микропроектик, пробу язычка ткскзть - дерганье сервиса криптобиржи, получение разных списков. Запустил на компиляцию. Ругнулось ошибкой. Обновил крейты (за два года что-то наверное могло поменяться, ведь правда?) - cargo update (да-да, я наивный лох, лезу в официальный репо, с троянами, пока не завел себе локальный сервак с репой с нужными мне и лично отобранными и проверенными построчно крейтами, хе-хе). Куча всего обновилось, что-то выкинулось (причем и тот крейт, где ошибка вылезла), что-то добавилось. Компиляция. Запуск. Всё отработало красиво, json-портянки вернулись. Если бы я с этим работал плотно, внимательно читал все варнинги, а не запускал на компиляцию/выполнение два раза в год для проверки "а не сломалось ли чё" - было бы вообще всё пучком.

Повторюсь: за точным списком сломанного - пройдите в анонс, пжалста. Кстати, всплывшая у меня ошибка как раз указана там - "Unaligned references to packed fields are now a hard error. This has been a warning since 1.53, and denied by default with a future-compatibility warning since 1.62.". Просто я забивал на варнинги, ведь не продакшн какой.

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

109. "Выпуск языка программирования Rust 1.69"  –3 +/
Сообщение от Michael Shigorinemail (ok), 21-Апр-23, 16:26 
> Rust
> криптобиржи
> не продакшн

"В человеке всё должно быть прекрасно" (ц) ДМБ

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

149. "Выпуск языка программирования Rust 1.69"  –1 +/
Сообщение от Аноним (75), 23-Апр-23, 22:30 
>> Rust
>> криптобиржи
>> не продакшн
>"В человеке всё должно быть прекрасно" (ц) ДМБ

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

По выборочно выдернутому из контекста (у Вас пунктик на эти слова? Сразу в стойку?) - а почему не выдернуто туда же - "заброшенный 2 года назад микропроектик, пробу язычка ткскзть"? Этого недостаточно понять, почему "не продакшн"? Слово "заброшенный" Вам неизвестно?

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

43. "Выпуск языка программирования Rust 1.69"  –1 +/
Сообщение от Пряник (?), 21-Апр-23, 09:29 
Поставить его без рута - та еще загадка.
Ответить | Правка | Наверх | Cообщить модератору

54. "Выпуск языка программирования Rust 1.69"  –1 +/
Сообщение от bOOster (ok), 21-Апр-23, 10:43 
На это и рассчет.
Ответить | Правка | Наверх | Cообщить модератору

58. "Выпуск языка программирования Rust 1.69"  +1 +/
Сообщение от НяшМяш (ok), 21-Апр-23, 10:54 
Rustup ставит в домашнюю директорию, дополнительных прав не требуется.
Ответить | Правка | К родителю #43 | Наверх | Cообщить модератору

106. "Выпуск языка программирования Rust 1.69"  –2 +/
Сообщение от Аноним (106), 21-Апр-23, 16:14 
rustup - сразу нахрен. sudo apt-get install.
Ответить | Правка | Наверх | Cообщить модератору

137. "Выпуск языка программирования Rust 1.69"  +1 +/
Сообщение от НяшМяш (ok), 22-Апр-23, 15:01 
Человек попросил без рута, я ему ответил. К чему тут твоё экспертное мнение - непонятно.
Ответить | Правка | Наверх | Cообщить модератору

122. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Карлос Сношайтилис (ok), 21-Апр-23, 20:51 
Попробуй команды ЗАПУСКАТЬ.
Просто смотреть в терминал помогает редко.
Ответить | Правка | К родителю #43 | Наверх | Cообщить модератору

56. "Выпуск языка программирования Rust 1.69"  +1 +/
Сообщение от Аноним (56), 21-Апр-23, 10:48 
Шутку упустили "happy to announce a nice version of Rust".

Версия 69 вышла 4.20. 69 - отсылка к сексу. 420 - к конопле. "nice" мемная реакция на эти числа. Вот такие вот приколы для даунов.

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

59. "Выпуск языка программирования Rust 1.69"  +2 +/
Сообщение от Аноним (59), 21-Апр-23, 11:47 
Что такое секс?
Ответить | Правка | Наверх | Cообщить модератору

68. "Выпуск языка программирования Rust 1.69"  +5 +/
Сообщение от Аноним (70), 21-Апр-23, 12:38 
Компиляция Rust.
Ответить | Правка | Наверх | Cообщить модератору

110. "Выпуск языка программирования Rust 1.69"  –2 +/
Сообщение от Michael Shigorinemail (ok), 21-Апр-23, 16:27 
> Вот такие вот приколы для даунов.

DIDO

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

79. "Выпуск языка программирования Rust 1.69"  –2 +/
Сообщение от Аноним (79), 21-Апр-23, 14:00 
Релиз не языка программирования, а его реализации
Ответить | Правка | Наверх | Cообщить модератору

85. "Выпуск языка программирования Rust 1.69"  +1 +/
Сообщение от Аноним (-), 21-Апр-23, 14:14 
В Расте реализация и язык, одно и то же. Разратотчики, проектировщики и дизайнеры тусуются в одной организации - Rust foundation. Это не ISO язык, как сишка. Хотя комитет по стандартизации языка Си, тоже своего рода тусовка, где все хорошо знакомы.
Ответить | Правка | Наверх | Cообщить модератору

99. "Выпуск языка программирования Rust 1.69"  +2 +/
Сообщение от keydon (ok), 21-Апр-23, 15:08 
> В Расте реализация и язык, одно и то же. Разратотчики, проектировщики и
> дизайнеры тусуются в одной организации - Rust foundation. Это не ISO
> язык, как сишка. Хотя комитет по стандартизации языка Си, тоже своего
> рода тусовка, где все хорошо знакомы.

Язык-реализация-библиотека-компилятор-линтер-пакетный-менеджер-все-едино-в-этом-адском-мире-трансгендерных-негро-феминисток-каждый-сможет-стать-кем-захочет-хоть-интерпретатором.

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

86. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от InuYasha (??), 21-Апр-23, 14:18 
Согласно требованиям Rust Foundation в этом яп тип Gender - это не bool а signed int? :)
Ответить | Правка | Наверх | Cообщить модератору

91. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от pashev.ru (?), 21-Апр-23, 14:37 
Нет. Придумай свой специализированный тип.
Ответить | Правка | Наверх | Cообщить модератору

93. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от someanon (?), 21-Апр-23, 14:42 
double
Ответить | Правка | К родителю #86 | Наверх | Cообщить модератору

94. "Выпуск языка программирования Rust 1.69"  +4 +/
Сообщение от xsignal (ok), 21-Апр-23, 14:51 
complex
Ответить | Правка | К родителю #86 | Наверх | Cообщить модератору

96. "Выпуск языка программирования Rust 1.69"  +4 +/
Сообщение от InuYasha (??), 21-Апр-23, 15:02 
> complex

real + imagine? два чая этому господину! :_D

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

118. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от 111 (??), 21-Апр-23, 17:46 
Лучше реализовать Gender через енум какой-нибудь.
Ответить | Правка | К родителю #86 | Наверх | Cообщить модератору

123. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Карлос Сношайтилис (ok), 21-Апр-23, 20:54 
Есть только два гендера: True и Not True.
Ответить | Правка | К родителю #86 | Наверх | Cообщить модератору

92. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Аноним (92), 21-Апр-23, 14:40 
Rust это современный Lisp. Про него все говорят но никто не пишет.
Ответить | Правка | Наверх | Cообщить модератору

105. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Kswapd (?), 21-Апр-23, 16:03 
Как никто не пишет? (картинка с коалой)
Ответить | Правка | Наверх | Cообщить модератору

111. "Выпуск языка программирования Rust 1.69"  –2 +/
Сообщение от Michael Shigorinemail (ok), 21-Апр-23, 16:28 
Эх Вас перекорёжило... лисп полезен хотя бы для расширения кругозора, а не "сознания".  Ну и пишут, да -- в альте вон альтератор на scheme.
Ответить | Правка | К родителю #92 | Наверх | Cообщить модератору

112. Скрыто модератором  +3 +/
Сообщение от Аноним (-), 21-Апр-23, 16:38 
Ответить | Правка | Наверх | Cообщить модератору

114. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Аноним (92), 21-Апр-23, 16:39 
Ну ладно, Lisp полезней чем Rust.
Ответить | Правка | К родителю #111 | Наверх | Cообщить модератору

140. "Выпуск языка программирования Rust 1.69"  +1 +/
Сообщение от pashev.ru (?), 22-Апр-23, 22:56 
> Эх Вас перекорёжило... лисп полезен хотя бы для расширения кругозора, а не
> "сознания".  Ну и пишут, да -- в альте вон альтератор
> на scheme.

http://git.pashev.ru/mendeleev/tree/mendeleev.lisp

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

143. "Выпуск языка программирования Rust 1.69"  +1 +/
Сообщение от Ananimus (?), 23-Апр-23, 13:26 
Ага, я заметил, когда наткнулся на абсолютно всратые баги типа такого:

; IMPORTANT! For some reason this must be the last entry. I don't know why but
; installer does not parse anything past ("/grub" ...).

; Install GRUB in /boot/efi
("/grub" action "write" device "efi")

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

121. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от VladSh (?), 21-Апр-23, 19:06 
На List под AutoCAD уже более 30 лет скрипты пишутся.
Ответить | Правка | К родителю #92 | Наверх | Cообщить модератору

144. "Выпуск языка программирования Rust 1.69"  +1 +/
Сообщение от Аноним (144), 23-Апр-23, 15:11 
Его выбросили не так давно. Внедрили Python, или что-то такое.
Ответить | Правка | Наверх | Cообщить модератору

152. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от VladSh (?), 24-Апр-23, 19:34 
> Его выбросили не так давно. Внедрили Python, или что-то такое.

Это для меня новость, спасибо!

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

158. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Someone (??), 29-Май-23, 09:01 
Да если бы. Живой сволочь
Ответить | Правка | К родителю #144 | Наверх | Cообщить модератору

125. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Аноним (125), 21-Апр-23, 21:19 
https://www.rust-lang.org/ru/production/users
И еще Google новые компоненты для андроида на Раст пишет
Ответить | Правка | К родителю #92 | Наверх | Cообщить модератору

142. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от InuYasha (??), 23-Апр-23, 10:42 
> И еще Google новые компоненты для андроида на Раст пишет

это печально.

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

145. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Аноним (145), 23-Апр-23, 16:28 
Гугол много на чем пишет.
Ответить | Правка | К родителю #125 | Наверх | Cообщить модератору

117. "Выпуск языка программирования Rust 1.69"  +2 +/
Сообщение от Аноним (117), 21-Апр-23, 17:41 
Язык со встроенным пакетным менеджером... Теперь я видел всё.
Ответить | Правка | Наверх | Cообщить модератору

124. "Выпуск языка программирования Rust 1.69"  +1 +/
Сообщение от Карлос Сношайтилис (ok), 21-Апр-23, 20:56 
Неправильно ты, Дядя Фёдор, мыслишь.
Это пакетный менеджер со встроенным языком!
Ответить | Правка | Наверх | Cообщить модератору

126. "Выпуск языка программирования Rust 1.69"  –1 +/
Сообщение от Хз (?), 22-Апр-23, 02:59 
Это как бы Си для нубов ?
Ответить | Правка | Наверх | Cообщить модератору

127. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Аноним (127), 22-Апр-23, 05:55 
С? Это чё еще за ассемблер для неосиляторов?
Ответить | Правка | Наверх | Cообщить модератору

154. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Германemail (??), 25-Апр-23, 10:21 
Плюсы для профессионалов
Ответить | Правка | К родителю #126 | Наверх | Cообщить модератору

155. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Аноним (155), 27-Апр-23, 03:32 
Си простой как два рубля, и нуб от профессионала отличается тем, что профессионал чаще статическим анализатором пользуется и вообще осторожнее работает с указателями,т.к. шишек набил. А Раст это попытка запилить язык в котором некорректную работу с памятью (такую, которую хакеры могут использовать через эксплоит) просто не выразить через синтаксис (тупо не скомпилируется). Но взамен чудовищное переусложнение практически на ровном месте. Borrow checker, лайфтаймы, внезапная фрустрация от того, что деревья и графы в расте описать можно, не используя unsafe, только очень неуклюже, ядрёными костылями.
Ответить | Правка | К родителю #126 | Наверх | Cообщить модератору

156. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от n00by (ok), 27-Апр-23, 06:44 
> внезапная фрустрация от того,
> что деревья и графы в расте описать можно, не используя unsafe,
> только очень неуклюже, ядрёными костылями.

Можно их реализовать на базе массива, заменив указатели индексами. Как например в главе 2.2 книжки А.Ахо, Дж.Хопкрофта, Дж.Ульмана сделано на Паскале. Фрустрация у меня от того, что почему-то не видел такой реализации.

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

147. "Выпуск языка программирования Rust 1.69"  +/
Сообщение от Аноним (145), 23-Апр-23, 16:41 
Crablang тоже актуален
https://github.com/crablang/crab/blob/master/RELEASES.md
Ответить | Правка | Наверх | Cообщить модератору

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

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




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

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