Re[10]: Откуда эта лютая любовь к знаковым целым?
От: CreatorCray  
Дата: 10.05.20 02:56
Оценка: +1
Здравствуйте, Mystic Artifact, Вы писали:

MA> https://github.com/llvm-mirror/llvm/blob/master/lib/CodeGen/VirtRegMap.cpp#L435

MA> Смотрим код, и понимаем, что это просто нытье по поводу стиля, которое, в масштабе — ровным счетом ни на что не влияет. Если это ситуационно нужно — пожалуйста.
Я такое заверну. Потому что не надо выделываться, от этого одни проблемы.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[12]: Откуда эта лютая любовь к знаковым целым?
От: CreatorCray  
Дата: 10.05.20 02:56
Оценка: +1
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Мы обфускатором не пользуемся

Я вживую видел людей которые так пишут просто из головы и искренне удивляются "а чо такого?"
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[12]: Откуда эта лютая любовь к знаковым целым?
От: CreatorCray  
Дата: 10.05.20 02:56
Оценка: +1
Здравствуйте, rg45, Вы писали:

R>А не может случиться так, что "кулхацкерским" этот "заголовок" является только потому, что он не вписывается в твое исходное утверждение?

Нет. Этот for — выпендрёж на ровном месте, причём я не вижу тут никаких бенефитов кроме попытки "сэкономить строки", за которое давно полагается тапком.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[16]: Откуда эта лютая любовь к знаковым целым?
От: CreatorCray  
Дата: 10.05.20 02:56
Оценка:
Здравствуйте, rg45, Вы писали:

R>это не будет нарушением "стандартной практики"?

Будет.
Тут надо while а не for
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[6]: Откуда эта лютая любовь к знаковым целым?
От: CreatorCray  
Дата: 10.05.20 02:56
Оценка:
Здравствуйте, T4r4sB, Вы писали:

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


У нас тут один <censored> воткнул когда то signed для LBA в протокол и обеспечил этим просто море гемора. А поскольку это случилось давно уже не исправить.
Вбыв бы!
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[10]: Откуда эта лютая любовь к знаковым целым?
От: CreatorCray  
Дата: 10.05.20 02:56
Оценка:
Здравствуйте, wander, Вы писали:

W>И ты вообще второй человек в моей жизни, которого это *так* раздражает.

Можешь записать меня третьим. Я считаю это излишеством которого там быть не должно.
Все эти извраты, типа operator , можно использовать строго там где без них ну ваще никак и хорошенько комментировать.
Потому что это источник проблем.

W>Что характерно первый, как и ты, в C++ пришел из паскалеподобных языков.

Я пришёл из С а туда из asm

TB>>мамкины хацкеры продолжают заниматься мозговым онанизмом...

W>Ты не забыл, что в приличном обществе находишься?
Это в КСВ то?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[3]: Откуда эта лютая любовь к знаковым целым?
От: CreatorCray  
Дата: 10.05.20 02:56
Оценка: +2 :)
Здравствуйте, vopl, Вы писали:

V>
V>#include <iostream>
V>using namespace std;

V>int main()
V>{
V>    for(unsigned u{5+1}; u-->0; )
V>        cout << u << endl;

V>    for(unsigned u{5}; u<=5; --u)
V>        cout << u << endl;

V>    return 0;
V>}
V>


Это говнокод которому не место в production code.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[2]: Откуда эта лютая любовь к знаковым целым?
От: CreatorCray  
Дата: 10.05.20 02:56
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>2. OpenMP. Неожиданно, но Майкрософт в своём компиляторе поддерживает только очень старую версию 2.0, в ней индексы для for могут быть только знаковыми.

Это ж тупо баг.

N>3. Адресная арифметика вся знаковая, родной тип ptrdiff_t.

Вот только адреса беззнаковые.

N> То есть если я захочу сделать размеры картинки (ширину и высоту) сделать, например, size_t и ходить по изображению по байтам, то мне всё равно надо переходить к ptrdiff_t, чтобы компилятор не ругался.

ptrdiff_t для разницы между указателями.

std::ptrdiff_t is the signed integer type of the result of subtracting two pointers.
std::ptrdiff_t acts as the signed counterpart of std::size_t


N>4. Внезапно оказывается, что многие типы становятся знаковыми, хотя по логике они такими быть, на первый взгляд, не могут. Например, детектирую я пешеходов и авто на кадре. И их левая координата уходит в минус, если в кадре видна только часть автомобиля.

И по какой вдруг логике они тут знаковыми быть не могут?

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

Это если с абстракциями не всё в порядке. Экран это всего лишь viewport, внутри которого ничего не бывает знаковым.

N>6. Даже яркость пикселя, которая чаще всего от 0 до 255 и представлена в uchar при манипуляциях с яркостью легко вылезает за пределы типа вверх и вниз

Опять промах по абстракциям.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[2]: Откуда эта лютая любовь к знаковым целым?
От: CreatorCray  
Дата: 10.05.20 02:56
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>В этом случае отрицательные значения используются для обозначения невалидных объектов (у нас это -1) и для каких-нибудь специальных констант.

Напомнило: "А если в поле day стоит 32 то в поле month будет лежать R компонента, а в поле Year G << 8 + B."
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[11]: Откуда эта лютая любовь к знаковым целым?
От: CreatorCray  
Дата: 10.05.20 02:56
Оценка:
Здравствуйте, netch80, Вы писали:

N>Ну и зачем эти лишние конверсии?

Это просто hint компилятору?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[5]: Откуда эта лютая любовь к знаковым целым?
От: CreatorCray  
Дата: 10.05.20 02:56
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Кстати, есть ли гуйные отладчики, умеющие при наведении показывать такое в заданных альтернативных форматах?

Классическая студия умела, хз как там сейчас в новомодной.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[5]: Откуда эта лютая любовь к знаковым целым?
От: CreatorCray  
Дата: 10.05.20 02:56
Оценка:
Здравствуйте, PM, Вы писали:

PM>размера и позиции в файловых потоках.

За это лично готов проводить массовые расстрелы. Мне такие проектировщики крови попортили уже.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[7]: Откуда эта лютая любовь к знаковым целым?
От: CreatorCray  
Дата: 10.05.20 02:56
Оценка:
Здравствуйте, Marty, Вы писали:

PD>>А вот это да. Это непростительно.

M>Нормально. Знак может показывать, откуда отсчитываем — от начала или конца. Какая разница, знаковый или беззнаковый?

Проследуйте к стенке!
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[10]: Откуда эта лютая любовь к знаковым целым?
От: CreatorCray  
Дата: 10.05.20 02:56
Оценка: -1 :)
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Теперь я уже не понял, о чем ты. Я лишь согласился с мнением PM, что 32 бита в файловом смещении никуда не годится.

Пофигу. За знаковые 64 бита я точно так же буду
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[9]: Откуда эта лютая любовь к знаковым целым?
От: CreatorCray  
Дата: 10.05.20 02:56
Оценка:
Здравствуйте, vopl, Вы писали:

V>Да, согласен . На один бит. Но не "гораздо меньше".

Это ж в два раза
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[12]: Откуда эта лютая любовь к знаковым целым?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 10.05.20 05:06
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Здравствуйте, netch80, Вы писали:


N>>Ну и зачем эти лишние конверсии?

CC>Это просто hint компилятору?

Хинт о чём? Договаривай.
The God is real, unless declared integer.
Re[13]: Откуда эта лютая любовь к знаковым целым?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 10.05.20 05:19
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

N>>z/Arch:

N>>MIPS:

EP>О, интересно, не знал что где-то есть.


Но это паршивенькие реализации. Проблема в том, что в них, как и в x86, обработка исключений не вышла из каменного века и требует обязательного перехода в режим супервизора.
Из более-менее заметных архитектур только в RISC-V озаботились вопросом "как исключения, которые не нужно гонять на высокие уровни, обрабатывать без переключения", но это только последние лет 5 и пока нету доступных реализаций в железе. Но RISC-V принципиально не генерирует исключения на целочисленную арифметику, даже на деление на 0.

N>>Но в нормальных современных процессорах, даже если есть проверки на happy path, за счёт предсказания ветвлений оно в подавляющем большинстве случаев пролетает их сходу, не притормаживая.


EP>Ну это совсем не бесплатно — арифметика используется повсеместно, в таком варианте её предсказания займут приличный кусок таблицы предсказателя, тормозя всё остальное приложение. На небольших по размеру горячих циклах проблемы нет, но на развесистых итерациях будет проседание.


Подозреваю, что ты сильно преувеличиваешь проблемность этого вопроса. Если уж в AArch64, где собрали всю статистику прошлого опыта и в результате по сравнению с 32-биткой убрали условное выполнение команд их признаком — в пользу явных переходов, то затраты на эту предсказания совсем ничтожные.
The God is real, unless declared integer.
Re[13]: Откуда эта лютая любовь к знаковым целым?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 10.05.20 06:31
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>>>Ты всё ещё предпочтёшь воротить нос от стандартной и лаконичной идиомы

TB>>Я такую лаконичность сишную в гробу видал.
TB>>Это говно, а не лаконичность.
TB>>Лаконичность — это reverseFor (i: n-1 .. 0);
EP>Видимо мы как-то по-разному понимаем слово "лаконичность":
EP>
EP>reverseFor(i: n-1 .. 0)
EP>vs
EP>while(n--)
EP>

EP>

Тут надо было бы пример подправить — reverseFor(i: n..1) превращается, как минимум, в

i = n + 1; // зачем этот инкремент, когда сразу же идёт вычитание назад?
while(i-->1) {
  ...
}


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

Кстати, gcc на такой цикл всё равно "обижается" расщеплением и переделкой условия:

При -O2:
_Z3fooj:
        lea     eax, 1[rdi]      ; <-- i = n + 1
        cmp     eax, 1
        jbe     .L6              ; <-- фактически, если n<=0, но проверка знаковая
        push    rbx
        mov     ebx, edi
.L3:
        mov     edi, ebx         ; <-- по сравнению с предыдущей командой как-то криво выглядит
        call    _Z3barj@PLT
        sub     ebx, 1
        jne     .L3              ; ой, он заменил i-->1 на --i>0. не понравились ему хаки.
        pop     rbx
        ret
.L6:
        ret


И только при -Og или -Os логика кода ближе к привычной:

_Z3fooj:
        push    rbx
        inc     edi
.L3:
        cmp     edi, 1
        lea     ebx, -1[rdi]
        jbe     .L1
        mov     edi, ebx
        call    _Z3barj@PLT
        mov     edi, ebx
        jmp     .L3
.L1:
        pop     rbx
        ret


EP>Ну так и замечательно, но вот для обсуждаемого конкретного частного случая while(n--) отлично подходит.

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

Ну, например, потому что на 1 хоть как-то привычного к такой идиоме будет 10 тех, кто будет смотреть на неё как на новые ворота слишком уж она узкоспецифична.
The God is real, unless declared integer.
Re[17]: Откуда эта лютая любовь к знаковым целым?
От: rg45 СССР  
Дата: 10.05.20 06:50
Оценка:
Здравствуйте, CreatorCray, Вы писали:

R>>это не будет нарушением "стандартной практики"?

CC>Будет.
CC>Тут надо while а не for

Это кто так решил?
--
Re[13]: Откуда эта лютая любовь к знаковым целым?
От: rg45 СССР  
Дата: 10.05.20 06:52
Оценка: +1 -1
Здравствуйте, CreatorCray, Вы писали:

CC>Нет. Этот for — выпендрёж на ровном месте,


Кто сказал?

CC>причём я не вижу тут никаких бенефитов кроме попытки "сэкономить строки",


А я нигде и не настаивал, что записать нужно непременно в одну строчку, например: http://rsdn.org/forum/flame.comp/7722412.1
Автор: rg45
Дата: 05.05.20
. Ты ж разберись в предмете сначала, потом кидайся.

CC>за которое давно полагается тапком.


Ну и традиционное обилие аргументов. На вопрос "почему так нельзя делать" один отвечает: "потому что не пройдешь ревью", другой — "потому что за это можно получить тапком". Вас где так надрессировали, коллеги?
--
Отредактировано 10.05.2020 7:38 rg45 . Предыдущая версия . Еще …
Отредактировано 10.05.2020 7:16 rg45 . Предыдущая версия .
Отредактировано 10.05.2020 7:15 rg45 . Предыдущая версия .
Отредактировано 10.05.2020 7:05 rg45 . Предыдущая версия .
Отредактировано 10.05.2020 6:59 rg45 . Предыдущая версия .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.