1.1, Аноним (1), 09:12, 15/12/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +4 +/– |
А зачем вообще если сразу понятно что переменная никогда не примет отрицательное значение не применять тип unsigned?
| |
|
2.7, _hide_ (ok), 09:29, 15/12/2020 [^] [^^] [^^^] [ответить]
| +10 +/– |
Вы вообще исходники чужие когда-нибудь читали? Это ещё цветочки -- к ошибкам не приводит и ладно.
| |
|
3.15, Аноним (15), 10:02, 15/12/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Там приводит к варнингам компиляции - потому и попытались исправить :)
| |
|
2.16, Z (??), 10:11, 15/12/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Это же классический Unix-style использовать int
| |
2.18, Ordu (ok), 10:31, 15/12/2020 [^] [^^] [^^^] [ответить]
| +/– |
А зачем вообще, если сразу понятно, что переменная не примет значение больше чем 2^31-1, применять тип int?
| |
|
3.22, Аноним (1), 10:49, 15/12/2020 [^] [^^] [^^^] [ответить]
| +3 +/– |
Судя по названию для chunk_sectors unsigned short все-таки не хватит, так что на мой взгляд оптимально использовать тип uint32_t (да, это из libc, но у него должен быть свой аналог в ядре).
| |
3.31, Аноним (31), 13:55, 15/12/2020 [^] [^^] [^^^] [ответить]
| +9 +/– |
> А зачем вообще, если сразу понятно, что переменная не примет значение больше чем 2^31-1, применять тип int?
Дэниел Бернштейн, залогиньтесь!
| |
|
2.23, n00by (ok), 10:53, 15/12/2020 [^] [^^] [^^^] [ответить]
| +5 +/– |
Например, что бы использовать недействительное значение как индикатор ошибки.
| |
2.48, Аноним (48), 00:25, 16/12/2020 [^] [^^] [^^^] [ответить]
| +3 +/– |
> если сразу понятно
Взгрустнул, всплакнул, вспомнил сколько бы хорошего сделал и сколько бы плохого не сделал "если бы сразу понятно" было.
| |
|
|
2.9, Dzen Python (ok), 09:33, 15/12/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Радовался бы, что не через полгода.
А на деле большинство юзеров это даже и не заметят - им ядро прилетит уже с пачем в дистро.
Пусть правят.
| |
|
|
2.20, Аноним (20), 10:35, 15/12/2020 [^] [^^] [^^^] [ответить]
| +6 +/– |
Это не лтс. Он будет лтс, когда подлатают все косяки. Это текущая ветка, а на ней всегда проблем больше (сроки поджимают и нет времени rc вылизать, наверное).
| |
|
3.28, zzz (??), 12:49, 15/12/2020 [^] [^^] [^^^] [ответить]
| +3 +/– |
LTS, LTS. Прост все так рвались пропихнуть свои поделия в LTS-релиз, что теперь еще пару лет будут отлаживать.
| |
|
4.29, Аноним (20), 13:16, 15/12/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Его только отпочковалось от мейнлайн и его пометили стейбл. В лтс всё же попадают не сразу. Хотя 5.4 до последнего тянули и не могли в лтс отправить, можно и быстрее.
| |
|
5.33, Аноним (31), 14:54, 15/12/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Да, но помню местные анонимусы ругали ноду за похожий подход - там тоже LTS идет позднее от stable. Пытались доказать, что так больше никто не делает. А тут само ядро. Также ведь многие проекты первый мажорный релиз вообще помечают как пробный - GCC и Mesa, к примеру. Все же местная богема тут очень некомпетентна.
| |
|
|
3.59, Урри (ok), 13:55, 16/12/2020 [^] [^^] [^^^] [ответить]
| +/– |
Какие сроки, вы о чем?
Все прекрасно работает, критически важных не реализованных вещей нет - можно сосредоточиться на тестировании.
Но нет, всеобщая современная болезнь "пускай тестируют на себе юзеры" и сюда проникла.
| |
|
2.24, КО (?), 11:03, 15/12/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Сам вякнул, сам заплюсовал.
Последний LTS 5.4
| |
|
|
2.13, mikhailnov (ok), 09:50, 15/12/2020 [^] [^^] [^^^] [ответить]
| –3 +/– |
Открываете https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.10.1/
Скачиваете:
linux-headers-5.10.1-051001-generic_5.10.1-051001.202012142031_amd64.deb
linux-headers-5.10.1-051001_5.10.1-051001.202012142031_all.deb
linux-image-unsigned-5.10.1-051001-generic_5.10.1-051001.202012142031_amd64.deb
linux-modules-5.10.1-051001-generic_5.10.1-051001.202012142031_amd64.deb
и делаете sudo apt install ./*.deb
Это то, что делает UKUU. Но там, смотрю, перед именами файлов появился префикс с архитектурой, раньше его не было, вероятно, из-за этого UKUU отвалился.
| |
|
1.8, Slowpoke (?), 09:31, 15/12/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
ребят, а когда уже лтс с поддержкой wireguard? Сидеть на мимопроходящем ядре немного некомфортно
| |
1.30, RM (ok), 13:47, 15/12/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
Так вот почему гугл вчера лежал - это они ядро свежеее накатили...
| |
1.32, Аноним (32), 14:46, 15/12/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Это из-за этой ошибки Гугл прилег? А порнхаб потерял больше половины видео?
| |
|
2.60, Урри (ok), 13:59, 16/12/2020 [^] [^^] [^^^] [ответить]
| +/– |
Порнхаб удалил миллионы видео потому, что с ними отказались работать виза и мастеркард. А они отказались работать потому, что какой-то журнализд откопал в порнхабовских закромах залитое в древние времена анонимом цп.
Порнхаб обиделся и выпилил всю годноту - типа если вы не хотите хорошей анонимной домашней порнушки, то вот вам стертые до дыр скучные бл_ди.
При этом, что характерно, на откровенный инцест всем моралфагам почему-то наплевать.
| |
|
|
|
3.57, Аноним (34), 10:28, 16/12/2020 [^] [^^] [^^^] [ответить]
| +/– |
Ага, после того как Linus прямо послал нвидию на..й выбора уже и нет. штеуд не в счет, га#но еще то
| |
|
4.61, Аноним (-), 15:46, 16/12/2020 [^] [^^] [^^^] [ответить]
| +/– |
Да, Линус послал НВидию, но уже после того как НВидиа послала сообщество разработчиков ядра на 3 буквы.
| |
|
5.65, Аноним (65), 21:55, 16/12/2020 [^] [^^] [^^^] [ответить]
| +/– |
>уже после того как НВидиа послала сообщество разработчиков ядра на 3 буквы.
Вот и надо было пойти
| |
|
|
|
|
|
|
3.42, Аноним (38), 20:45, 15/12/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Что следует использовать вместо?
int8_t, uint8_t, int16_t, uint16_t, int32_t, uint32_t, int64_t, uint64_t, size_t, ssize_t.
| |
|
|
5.45, Аноним (38), 23:03, 15/12/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Аргументы?
Т. е. использование int'а для перечисления или обозначения количества элементов не вызывает чувства нелогичности?
| |
|
6.49, Аноним (48), 00:34, 16/12/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Вызывает. Но действительность несколько шире.
man -s2 read
Предложите вариант для - считали Н байт, считали 0 байт, ошибка.
Qus_EC_t ? GetLastError()?
| |
|
7.52, Аноним (38), 02:43, 16/12/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
>> man -s2 read
> ssize_t read(int fd, void *buf, size_t count);
>> Предложите вариант для - считали Н байт, считали 0 байт, ошибка.
typedef size_t RetVal;
RetVal read(size_t pFD, uint8_t* const pBuf, size_t pToRead, size_t* const pRead);
/******/
RetVal rv;
size_t really_read;
if(MyToRead > 0)
{
rv = read(MyFD, MyBuf, MyToRead, &really_read);
if(rv != RV_Ok)/* RV_Ok == 0 */
{
ErrorHandler...
}
else if(really_read < MyToRead)
{
EmptySourceHandler...
}
}
| |
|
|
5.46, llolik (ok), 23:14, 15/12/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Размерность int не обязана быть 4 байта. При кроссплатформенной сборке можно запросто получить внезапные integer overflow на пустом месте и потом долго и упорно их искать. *_t типы - гарантировано той размерности, которая указана.
Отказываться совсем не призываю, но использовать, если значение гарантировано никогда не вылезет за 2 байта с учётом знака - это да.
| |
|
6.53, Аноним (38), 02:47, 16/12/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Дополню. Если используется gcc и платформа AVR, то там int - сюрприз, сюрприз - имеет 16 бит. Почему? Разработчик "бэкенда" так захотел. Но есть волшебный ключ "-mint8", который приводит int к правильному размеру - 8 бит.
| |
|
7.55, Аноним (55), 04:05, 16/12/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Если используется gcc и платформа AVR, то там int - сюрприз, сюрприз - имеет 16 бит. Почему?
Потому что по стандарту
> The minimum size for char is 8 bits, the minimum size for short and int is 16 bits, for long it is 32 bits and long long must contain at least 64 bits.
> -- https://en.wikipedia.org/wiki/C_data_types
Дабы не грешили на вику, скажу, что такое же утверждение (кроме long long, и относительно C++) я находил в третьем издании книги Страуструпа по C++ (описывающей стандарт 98 года).
> Но есть волшебный ключ "-mint8", который
ломает переносимость. Но, откровенно говоря, софт для AVR вряд ли кто-то будет пускать на серверах и/или десктопах, да и переносимость "в бОльшую сторону" (в минимум-16-битный int вместо 8-битного) в 99% случаев "сама получится".
| |
|
6.62, Урри (ok), 16:34, 16/12/2020 [^] [^^] [^^^] [ответить]
| +/– |
Вы согласны под разные платформы писать разный код? Вручную выбирать размер машинного слова под конкретное устройство?
Или все же лучше оставить это решение за компилятором? Который лучше знает, какой именно размер типа будет более быстрый в данной ситуации. Ну вот поэтому и появился тип int, который "минимум 16 бит" и все остальные.
Неужели вы считаете что Керниган и Риччи были глупее вас?
| |
|
7.63, llolik (ok), 17:16, 16/12/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Вы согласны под разные платформы писать разный код?
Как раз наоборот я могу быть уверен, что , например, int32_t всегда строго 4 байта, а не ХЗ сколько. И что в size_t гарантировано влезет размер буфера, не вломив мне integer overflow.
> Вручную выбирать размер машинного слова под конкретное устройство?
Вот как раз *_t от этого и избавляют
> Или все же лучше оставить это решение за компилятором?
Нет, не всегда это лучше.
> вот поэтому и появился тип int, который "минимум 16 бит"
А может быть и не 16, а может быть и 32 и 64 и, с ключами, как выше написано, даже 8. И что? А потом тебе приходит бинарник/сообщение в котором, условно 15 полей типа int. И? Какого int прислали 16/32/64/... бит и каким разбирать?
> Неужели вы считаете что Керниган и Риччи были глупее вас?
Как там у Вас в 70-х? Стандарт как-бы уже давно ушёл вперёд.
| |
|
|
|
4.47, llolik (ok), 23:22, 15/12/2020 [^] [^^] [^^^] [ответить]
| +/– |
> ssize_t
Только с оговоркой, что это POSIX, а не ISO/IEC.
Хотя в msvc тоже есть костыль
#if defined(_MSC_VER)
#include <BaseTsd.h>
typedef SSIZE_T ssize_t;
#endif
| |
|
|
|
|
2.67, Аноним (-), 18:13, 18/12/2020 [^] [^^] [^^^] [ответить]
| +/– |
процесс сборки с ворнингами иероглифами можно использовать в световом оформлении мс-тусовок
| |
|
|