- 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
какой пиздец!!!
В Swing и CEF и много где еще нас встречает такая цветовая модель: ALPHA_R_G_B. Четыре байта.
И её с удовольствием кодируют интом.
В качестве числа этот инт выглядит тупо, но всем похуй, ведь можно смотреть на него как на 4 байта:
И тут а арене появляется котлин, который рассуждает так: хексовые константы всегда должны превращаться в положительный signed int, если пользователь явно не заказал минус слева, иначе пользователь запутается.
Так что
Что же делать?
Можно написать так
Очень удобно конечно, но я пожалуй напишу этот кусок кода на джаве
seo: котлин сосет хуй
да, так можно
Берем литерал для лонга и кастим его
но всё равно же кал?
На винде я бы слинквовал ее статически, чтобы потом не ставить CRT на старые системы.
На прыщах, кажется, этого делать не нужно.
Если я линкую ее динамически, то имею
насколько я понимаю:
* vdso ядро мапит в адресное пространство всех процессов, через него либси определяет как делать сискол (через прерывание или сисентер)и там же кеширует всякую фигню типа текущего времени, чтобы выдавать его вообще без сискола.
* либси имеет soname .so.6 с 1997-го года, и анлайкли поменяется в этом веке, и ABI ее тоже стабилен
* ld-linux это загрузчик динамических бинарей, и он тоже стабилен по soname/abi
Короче, делать gcc -static совсем не нужно.
А вот forward гарантии нету. Поэтому тебе придётся взять самые древние либцы, которые ты хочешь поддержать и собираться об них. Иначе есть риск заюзать свежую функцию, которой в каком-нибудь окаменелом редхате нету. Ну или хотя бы потестировать там.
> 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.
Гомоиконность!
Как же сделать так, чтобы моя программа по всей-всей-всей чеховской кибальчеховской работала?
Собрать ее двадцатилетней давности тулчейном?
З.Ы. А вот статически линковаться видимо только тулчейном 20-летней выдержки.
Из фич там
тоже не блидинг ейдж, скажем так:)
А если я соберусь статически, то вместо ABI glibc я получу ABI ядра, которое развивается динамичнее, и шансы на отсос в RedHat 5.3 будут выше?
как приятно было увидеть "service" вместо systemd, лол
>libc ABIs: UNIQUE IFUNC ABSOLUTE
вот это интересный аутпут в libc.so.6 --version, надоп очитат
https://wiki.alpinelinux.org/wiki/Running_glibc_programs
придется собираться статически на шестом центосе
Не знаю, зачем нужел алпаин, на всякий случай пожелаю поносу
но не для того, чтобы собирать на нем какие-то интересные тебе проги, которые потом запускать на шестом центосе
это минималистичный контейнер со своим особенным глибц
возможностей которого тебе либо хватит, либо нет
Это не гну линукс какой-то, есл итам либси нету
было довольно забавно узнать, что там какая-то настолько ебанутая реализация тредов, что из-за этого к жабе не подключиться для дебага
Там есть либси, но оно не гну либси. На уровне исходников то совместимо, если тебе какие-то экзотические функции не нужны.
в общем кроме как собрать статически на шестой центости -- других споосбов-то и нет, лол
совт для второго отдельно надо собирать и линковать
в частности, ограниченного оллпэйна хватает и нжинксу, и ванильному постгресу
Даже у гентушков каких-нибудь, лол.
да я с радостью напишу открытый скрипт, но я не знаю какой интерпретируемый язык там будет.
И ГЦЦ там может не быть
Ну кроме статики, собранном на древнем редхате, под такие условия наверное ничего не подойдёт.
Что мне делать?
Писать на шел/авк не предлагать: там нет нужного мне API, ксожалению
Пока что так
если ендюзер не настолько прошарен, то ему было бы удобно установить пакетом, из репы, чтобы системный менеджер хотя бы следил за удовлетворением зависимостей и намекал, что появилась более свежая версия
или ты считаешь, что ендюзеру охуенно удобно на 6й (!) центос ебануть бинаря?
какие-то виндузятные паттерны распространения софта, нахуй таких из нашего прыщемирка!
он хочет запустить мое говно на wsl, и потечь. Я ему даю бинарь -- он работает. Всё.
Шестая центость взята в качестве примера древней ОС, накоторой уж если зарбоатет -- то зарабоатет везде
З.Ы. И на китайском андроиде с мипсом.
https://www.microsoft.com/ru-ru/search/shop/apps?q=wsl
лучше бы WCT ставили вместо WSL
Не хватит пакета под экзотику - ну еще один соберешь. Один хуй там все убунту юзают, 99% покроет.
кроме алпайна, дебиана, и вероятно арча
В общем понятно, что без объяснения бизнес-задачи я выгляжу как сёма:) лано, похуй
Почему?
Это явно не домохозяйка, раз осилила поставить wsl и пользоваться его соснолью.
Ну и wsl не является защищенным серваком, на который лишнее не ставят.
ленивые пидарасы-программисты твоей конторы, не осилившие команды ipconfig /all и не способные запустить PoшerShell, на очередном ремоут митапе решили, что им срочно нужен унисекс божественный бинарь под WSL на арче и алпайне, решающий все их проблемы от сотворения мира, но ставить из локальной репы нормальный пакет с нормальными зависимостями они, конечно, не будут - а просто скопируют с шары \\Distributivy\MakakSoft мышкой и потекут
У виртуалки WSL2 есть IP адрес
Виртуалки, хуиалки. Скоро виндузятники изобретут вагрант, походу.
Ну и отлично. Мелкомягкие сами себе поднасрали по-сути, увеличив поголовье линуксоидов.
А разве у линукса в той виртуалке нет какой-нибудь штатной команды для того, чтобы увидеть сетевые интерфейсы и привязанные к ним IP адреса?
формально есть ip, но она есть не везде, и не всегда по ней можно понять какой именно интерфейс используется для связи с пиндой
Для лонга наверняка можно как-нибудь из бигинта скастовать.
>hi i'm a lesbian catgirl who loves hummus and kernels
Всех с пятницей
Ну такое... могут понравиться, будешь потом на своих тян ушки вешать.
Less common but occasionally seen is the catboy, usually found in yaoi
теперь меня пугает твой аватар
Choose wisely, guest6.
давайте лучше про Intel IPP
Если бы тебе нужно было преобразовать GBRA в ARGB в большом растре например, аще лучше рпосто в RGB, выкинув нахуй A, то ты бы руками байтики двигал и постарался бы взять какой-то интринсик, который умеет в SIMD? Или тут SIMD не поможет?
Хочется сделать это максимально быстро нагнув современный проц
А так bswap какой-нибудь, благо конпеляторы паттерн для него норм детектят.
Для случая преобразования GBRA в ARGB будет достаточно и циклического сдвига 32-битного инта, если там 8 бит на канал. https://wandbox.org/permlink/4E2hHJnn52SrCgAZ
Конкретные интринсики можно там https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=rol&cats=Shift посмотреть
Т.е. можно сначала циклически сдвинуть 32-бит поебень на 16, потом ебнуть sse для разворачивания 16-бит т.е. чтоб AB -> BA для того-то кусочка. Или сначала свапнуть 2 байта (но уже в другом месте), потом уже прокрутить на 16, то уж один хер.
какой смак в мксимально быстром нагневании современного проца? приятнее максимально нагнувать, а уж быстро или нет ну это смотря у кого какой тайминг.
Предлагаю FPGA
Кто помнит такое?
На такой херне ты в шину памяти упрешься, и на процессор похеру будет.
Если тебе это надо делать перед выводом на экран, то GPU с этим влегкую справится, и никакое IPP и SSE тебе нахуй не надо. Если ты оффлайн конвертируешь некое говно(например, видео какое-то переводишь в другой формат), скорость тебе скорее всего не очень критична, и на SSE и прочую парашу похеру. А если тебе надо в реалтайме и без GPU и чтоб low-latency, это можно решить аппаратно.
Лучше опиши конкретное ТЗ. Или вопрос сугубо теоретический?
А вот кстати нет. В том же вулкане на нвидии у меня RGB картинку загрузить не получилось. Не умеет железо с криво выровненным говном работать.
необычно, правда?
Или там шейдер на GLSL написать, который байтики эти перехуячивает
https://www.hardmo.de/article/2018-10-21-rgb-yuv420-glsl.md