The OpenNET Project / Index page

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



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

Оглавление

Выпуск языка программирования Rust 1.69, opennews (??), 20-Апр-23, (0) [смотреть все]

Сообщения [Сортировка по времени | 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ообщить модератору

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

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




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

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