Size: a a a

2020 October 19

IB

Ivan Bessarabov in Lua in Moscow
на низком уровне — да.

но вообще бывают языкики у которых есть оператор сравнения который возвращает именно -1, 0, 1
источник

S

Snusmumriken in Lua in Moscow
Alexander Gladysh
да, запрос был строго на одну операцию 🙂
Формально — в одно сравнение, дополнительный обвес не определён.
источник

SC

Sarcastic Cat in Lua in Moscow
Ivan Bessarabov
на низком уровне — да.

но вообще бывают языкики у которых есть оператор сравнения который возвращает именно -1, 0, 1
ну о том и речь, по факту это просто "сахар", под капотом там все равно несколько операций
источник

KO

Konstantin Osipov in Lua in Moscow
cmpsb? не, не слышали...
источник

KO

Konstantin Osipov in Lua in Moscow
ясно-понятно
источник

AG

Alexander Gladysh in Lua in Moscow
ну это, классический Луа не умеет в инструкции процессора
источник

AG

Alexander Gladysh in Lua in Moscow
луаджит может быть что-нибудь в нее и заджиттит, но я бы не закладывался 🙂
источник

S

Snusmumriken in Lua in Moscow
Alexander Gladysh
луаджит может быть что-нибудь в нее и заджиттит, но я бы не закладывался 🙂
ffi.cdef"int strcmp(...);"
источник

AG

Alexander Gladysh in Lua in Moscow
вряд ли это выльется в одну инструкцию 😉
источник

S

Snusmumriken in Lua in Moscow
Ок, сделайте одной операцией вот тут:
https://luapower.com/dynasm
источник

G(

Godruma-vihari Dasa ... in Lua in Moscow
Не очень понятна обсуждаемая задача: что значит в 1 операцию? Можно написать интерполирующее выражение, которое используется как индекс для массива (таблицы) со значениями -1, 0 и 1, но это зависит от задачи.
источник

S

Snusmumriken in Lua in Moscow
Какой вопрос — такой ответ.
источник

m

mihacooper in Lua in Moscow
Мне кажется, что человек искал нечто вроде этого оператора
https://en.cppreference.com/w/cpp/language/operator_comparison#Three-way_comparison
источник

G(

Godruma-vihari Dasa ... in Lua in Moscow
Может быть, уточнять, а то идёт грандиозное обсуждение, а суть проблемы остаётся туманной...
источник

SC

Sarcastic Cat in Lua in Moscow
Konstantin Osipov
cmpsb? не, не слышали...
если это типа ответ на то, что под капотом все равно несколько операций, то: а если это не числа, а строки? юникодные?
а если операнды вообще разных типов?
в какой ад это выливается можно посмотреть в https://github.com/php/php-src/blob/14830ab2a372e9b3cdf1199e7f00f4ff70d19d1a/Zend/zend_operators.c#L2056
(в пыхе просто проще всего было найти реализацию, а в реализацию в плюсах я вообще боюсь смотреть)
источник

KO

Konstantin Osipov in Lua in Moscow
то всё равно будет огромная экономия на том что просмотр строк делается один раз, а не несколько
источник

KO

Konstantin Osipov in Lua in Moscow
да, в С++ добавили недавно tri-compare, 30 лет существования форка языка С и до его создателей дошло что они упустили из виду что-то элементарное.
источник

SC

Sarcastic Cat in Lua in Moscow
Konstantin Osipov
то всё равно будет огромная экономия на том что просмотр строк делается один раз, а не несколько
Но операция-то всё же не одна, м?
источник

KO

Konstantin Osipov in Lua in Moscow
да, не одна. там даже с процессорной инструкцией не одна операция.
источник

KO

Konstantin Osipov in Lua in Moscow
но ускорить в 2 раза один и тот же код можно запросто.
источник