- 1
- 2
Currently it's hard or even impossible to use hexadecimal literal constants that result in overflow of the corresponding signed types.
https://github.com/Kotlin/KEEP/blob/master/proposals/unsigned-types.md
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
Currently it's hard or even impossible to use hexadecimal literal constants that result in overflow of the corresponding signed types.
https://github.com/Kotlin/KEEP/blob/master/proposals/unsigned-types.md
какой пиздец!!!
MAKAKA 06.11.2020 03:37 # +1
В Swing и CEF и много где еще нас встречает такая цветовая модель: ALPHA_R_G_B. Четыре байта.
И её с удовольствием кодируют интом.
В качестве числа этот инт выглядит тупо, но всем похуй, ведь можно смотреть на него как на 4 байта:
И тут а арене появляется котлин, который рассуждает так: хексовые константы всегда должны превращаться в положительный signed int, если пользователь явно не заказал минус слева, иначе пользователь запутается.
Так что
Что же делать?
Можно написать так
Очень удобно конечно, но я пожалуй напишу этот кусок кода на джаве
seo: котлин сосет хуй
bormand 06.11.2020 03:44 # 0
guest6 06.11.2020 03:54 # 0
да, так можно
Берем литерал для лонга и кастим его
но всё равно же кал?
bormand 06.11.2020 08:49 # 0
guest6 06.11.2020 11:46 # −1
На винде я бы слинквовал ее статически, чтобы потом не ставить CRT на старые системы.
На прыщах, кажется, этого делать не нужно.
Если я линкую ее динамически, то имею
насколько я понимаю:
* vdso ядро мапит в адресное пространство всех процессов, через него либси определяет как делать сискол (через прерывание или сисентер)и там же кеширует всякую фигню типа текущего времени, чтобы выдавать его вообще без сискола.
* либси имеет soname .so.6 с 1997-го года, и анлайкли поменяется в этом веке, и ABI ее тоже стабилен
* ld-linux это загрузчик динамических бинарей, и он тоже стабилен по soname/abi
Короче, делать gcc -static совсем не нужно.
bormand 06.11.2020 12:17 # 0
А вот forward гарантии нету. Поэтому тебе придётся взять самые древние либцы, которые ты хочешь поддержать и собираться об них. Иначе есть риск заюзать свежую функцию, которой в каком-нибудь окаменелом редхате нету. Ну или хотя бы потестировать там.
j123123 06.11.2020 12:27 # +1
bormand 06.11.2020 12:40 # 0
bormand 06.11.2020 13:21 # 0
j123123 06.11.2020 13:46 # +1
> As a result, it is possible to write programs which modify themselves while running. This feature also brings introspection abilities (sometimes called "Reflection" or "Reflectance"), allowing Brainfuck programs to read their own source code.
Гомоиконность!
bormand 06.11.2020 14:01 # 0
guest6 06.11.2020 12:44 # 0
Как же сделать так, чтобы моя программа по всей-всей-всей чеховской кибальчеховской работала?
Собрать ее двадцатилетней давности тулчейном?
bormand 06.11.2020 13:00 # 0
З.Ы. А вот статически линковаться видимо только тулчейном 20-летней выдержки.
MAPTbIwKA 06.11.2020 14:03 # 0
Из фич там
тоже не блидинг ейдж, скажем так:)
А если я соберусь статически, то вместо ABI glibc я получу ABI ядра, которое развивается динамичнее, и шансы на отсос в RedHat 5.3 будут выше?
bormand 06.11.2020 14:04 # 0
MAPTbIwKA 06.11.2020 14:53 # 0
как приятно было увидеть "service" вместо systemd, лол
>libc ABIs: UNIQUE IFUNC ABSOLUTE
вот это интересный аутпут в libc.so.6 --version, надоп очитат
bormand 06.11.2020 14:59 # 0
MAPTbIwKA 06.11.2020 16:33 # 0
https://wiki.alpinelinux.org/wiki/Running_glibc_programs
MAPTbIwKA 06.11.2020 16:42 # 0
придется собираться статически на шестом центосе
Не знаю, зачем нужел алпаин, на всякий случай пожелаю поносу
defecate-plusplus 06.11.2020 16:45 # 0
но не для того, чтобы собирать на нем какие-то интересные тебе проги, которые потом запускать на шестом центосе
это минималистичный контейнер со своим особенным глибц
возможностей которого тебе либо хватит, либо нет
MAPTbIwKA 06.11.2020 17:02 # 0
Это не гну линукс какой-то, есл итам либси нету
Fike 06.11.2020 17:03 # 0
было довольно забавно узнать, что там какая-то настолько ебанутая реализация тредов, что из-за этого к жабе не подключиться для дебага
MAPTbIwKA 06.11.2020 17:13 # 0
Fike 06.11.2020 17:14 # 0
bormand 06.11.2020 17:03 # 0
Там есть либси, но оно не гну либси. На уровне исходников то совместимо, если тебе какие-то экзотические функции не нужны.
MAPTbIwKA 06.11.2020 17:13 # 0
в общем кроме как собрать статически на шестой центости -- других споосбов-то и нет, лол
defecate-plusplus 06.11.2020 17:26 # 0
совт для второго отдельно надо собирать и линковать
в частности, ограниченного оллпэйна хватает и нжинксу, и ванильному постгресу
bormand 06.11.2020 17:27 # 0
Даже у гентушков каких-нибудь, лол.
MAPTbIwKA 06.11.2020 17:33 # 0
да я с радостью напишу открытый скрипт, но я не знаю какой интерпретируемый язык там будет.
И ГЦЦ там может не быть
bormand 06.11.2020 17:39 # 0
Ну кроме статики, собранном на древнем редхате, под такие условия наверное ничего не подойдёт.
MAPTbIwKA 06.11.2020 17:29 # 0
Что мне делать?
Писать на шел/авк не предлагать: там нет нужного мне API, ксожалению
Пока что так
defecate-plusplus 06.11.2020 17:39 # 0
если ендюзер не настолько прошарен, то ему было бы удобно установить пакетом, из репы, чтобы системный менеджер хотя бы следил за удовлетворением зависимостей и намекал, что появилась более свежая версия
или ты считаешь, что ендюзеру охуенно удобно на 6й (!) центос ебануть бинаря?
какие-то виндузятные паттерны распространения софта, нахуй таких из нашего прыщемирка!
MAPTbIwKA 06.11.2020 17:41 # 0
он хочет запустить мое говно на wsl, и потечь. Я ему даю бинарь -- он работает. Всё.
Шестая центость взята в качестве примера древней ОС, накоторой уж если зарбоатет -- то зарабоатет везде
bormand 06.11.2020 17:41 # 0
З.Ы. И на китайском андроиде с мипсом.
MAPTbIwKA 06.11.2020 17:42 # 0
defecate-plusplus 06.11.2020 17:43 # 0
MAPTbIwKA 06.11.2020 17:45 # 0
https://www.microsoft.com/ru-ru/search/shop/apps?q=wsl
defecate-plusplus 06.11.2020 17:48 # +2
лучше бы WCT ставили вместо WSL
bormand 06.11.2020 17:57 # 0
bormand 06.11.2020 17:43 # 0
Не хватит пакета под экзотику - ну еще один соберешь. Один хуй там все убунту юзают, 99% покроет.
bormand 06.11.2020 17:45 # 0
MAPTbIwKA 06.11.2020 17:57 # 0
кроме алпайна, дебиана, и вероятно арча
bormand 06.11.2020 18:00 # 0
MAPTbIwKA 06.11.2020 18:08 # 0
В общем понятно, что без объяснения бизнес-задачи я выгляжу как сёма:) лано, похуй
bormand 06.11.2020 18:12 # 0
Почему?
Это явно не домохозяйка, раз осилила поставить wsl и пользоваться его соснолью.
Ну и wsl не является защищенным серваком, на который лишнее не ставят.
defecate-plusplus 06.11.2020 19:11 # +1
ленивые пидарасы-программисты твоей конторы, не осилившие команды ipconfig /all и не способные запустить PoшerShell, на очередном ремоут митапе решили, что им срочно нужен унисекс божественный бинарь под WSL на арче и алпайне, решающий все их проблемы от сотворения мира, но ставить из локальной репы нормальный пакет с нормальными зависимостями они, конечно, не будут - а просто скопируют с шары \\Distributivy\MakakSoft мышкой и потекут
MAPTbIwKA 06.11.2020 20:55 # 0
gost 06.11.2020 21:15 # 0
MAPTbIwKA 06.11.2020 21:51 # 0
У виртуалки WSL2 есть IP адрес
defecate-plusplus 06.11.2020 23:16 # 0
Виртуалки, хуиалки. Скоро виндузятники изобретут вагрант, походу.
j123123 07.11.2020 03:29 # 0
Ну и отлично. Мелкомягкие сами себе поднасрали по-сути, увеличив поголовье линуксоидов.
j123123 07.11.2020 03:47 # 0
А разве у линукса в той виртуалке нет какой-нибудь штатной команды для того, чтобы увидеть сетевые интерфейсы и привязанные к ним IP адреса?
guest6 07.11.2020 04:47 # 0
формально есть ip, но она есть не везде, и не всегда по ней можно понять какой именно интерфейс используется для связи с пиндой
bormand 06.11.2020 13:02 # 0
MAPTbIwKA 06.11.2020 14:03 # 0
j123123 07.11.2020 03:30 # 0
j123123 07.11.2020 07:59 # 0
Для лонга наверняка можно как-нибудь из бигинта скастовать.
rotoeb 07.11.2020 09:33 # 0
MAPTbIwKA 06.11.2020 21:52 # +2
>hi i'm a lesbian catgirl who loves hummus and kernels
Всех с пятницей
gost 06.11.2020 22:26 # 0
MAPTbIwKA 06.11.2020 22:57 # 0
bormand 07.11.2020 12:20 # 0
guest6 07.11.2020 12:25 # 0
bormand 07.11.2020 12:30 # 0
Ну такое... могут понравиться, будешь потом на своих тян ушки вешать.
guest6 07.11.2020 12:51 # +1
BoJlLLle6HuLLa 07.11.2020 12:34 # +1
guest6 07.11.2020 12:43 # 0
bormand 07.11.2020 14:41 # +1
guest6 07.11.2020 14:46 # 0
rotoeb 07.11.2020 14:49 # +1
BoJlLLle6HuLLa 07.11.2020 14:52 # 0
guest6 07.11.2020 14:55 # +3
guest6 07.11.2020 16:54 # +1
Less common but occasionally seen is the catboy, usually found in yaoi
теперь меня пугает твой аватар
bormand 07.11.2020 21:22 # 0
Choose wisely, guest6.
guest6 07.11.2020 21:31 # 0
давайте лучше про Intel IPP
bormand 07.11.2020 21:32 # 0
guest6 07.11.2020 21:59 # 0
bormand 07.11.2020 23:15 # 0
guest6 07.11.2020 23:32 # 0
Если бы тебе нужно было преобразовать GBRA в ARGB в большом растре например, аще лучше рпосто в RGB, выкинув нахуй A, то ты бы руками байтики двигал и постарался бы взять какой-то интринсик, который умеет в SIMD? Или тут SIMD не поможет?
Хочется сделать это максимально быстро нагнув современный проц
bormand 07.11.2020 23:37 # 0
А так bswap какой-нибудь, благо конпеляторы паттерн для него норм детектят.
j123123 08.11.2020 02:51 # 0
Для случая преобразования GBRA в ARGB будет достаточно и циклического сдвига 32-битного инта, если там 8 бит на канал. https://wandbox.org/permlink/4E2hHJnn52SrCgAZ
Конкретные интринсики можно там https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=rol&cats=Shift посмотреть
j123123 08.11.2020 04:06 # 0
Т.е. можно сначала циклически сдвинуть 32-бит поебень на 16, потом ебнуть sse для разворачивания 16-бит т.е. чтоб AB -> BA для того-то кусочка. Или сначала свапнуть 2 байта (но уже в другом месте), потом уже прокрутить на 16, то уж один хер.
Fike 07.11.2020 23:50 # 0
какой смак в мксимально быстром нагневании современного проца? приятнее максимально нагнувать, а уж быстро или нет ну это смотря у кого какой тайминг.
j123123 07.11.2020 23:53 # 0
Предлагаю FPGA
bormand 08.11.2020 00:03 # 0
j123123 08.11.2020 00:42 # +1
guest6 08.11.2020 01:08 # 0
Кто помнит такое?
j123123 08.11.2020 03:07 # 0
На такой херне ты в шину памяти упрешься, и на процессор похеру будет.
j123123 08.11.2020 07:26 # 0
Если тебе это надо делать перед выводом на экран, то GPU с этим влегкую справится, и никакое IPP и SSE тебе нахуй не надо. Если ты оффлайн конвертируешь некое говно(например, видео какое-то переводишь в другой формат), скорость тебе скорее всего не очень критична, и на SSE и прочую парашу похеру. А если тебе надо в реалтайме и без GPU и чтоб low-latency, это можно решить аппаратно.
Лучше опиши конкретное ТЗ. Или вопрос сугубо теоретический?
bormand 08.11.2020 19:41 # 0
А вот кстати нет. В том же вулкане на нвидии у меня RGB картинку загрузить не получилось. Не умеет железо с криво выровненным говном работать.
bormand 08.11.2020 19:54 # 0
guest6 08.11.2020 19:56 # 0
необычно, правда?
j123123 09.11.2020 01:43 # 0
Или там шейдер на GLSL написать, который байтики эти перехуячивает
bormand 09.11.2020 02:22 # 0
bormand 09.11.2020 02:34 # 0
j123123 09.11.2020 01:51 # 0
https://www.hardmo.de/article/2018-10-21-rgb-yuv420-glsl.md
guest6 07.11.2020 21:33 # 0
guest6 06.11.2020 22:08 # +1
MAPTbIwKA 06.11.2020 22:56 # +1
guest6 06.11.2020 22:58 # +1
gost 08.11.2020 20:07 # 0
Fike 08.11.2020 00:05 # 0
gost 08.11.2020 20:08 # 0
bormand 08.11.2020 20:10 # +1
gost 08.11.2020 20:13 # +2