УМННБJ, ЯХВ. Войти !bnw Сегодня Клубы
Я вот всегда недоумевал насчёт C/C++. Бывает же, что нужна структура с выравниванием по одному байту. В принципе есть уродская `#pragma pack`, которую вроде как более или менее все поддерживают уже. И вроде бы ладно. Но почему оно не включается по умолчанию для структур с битовыми полями? Логично же.
#F0XEWH / @dluciv / 2600 дней назад

есть мнение, что такие извращения как "структура с выравниванием" часто используются потому что лень писать нормальный сериализатор/десериализатор, а потому не нужны.

#F0XEWH/P3T / @lexszero / 2600 дней назад
@lexszero Имплаин программиста можно *силой* заставить генерировать несколько экранов сериализатора который будет делать тоже самое только с ошибками
#F0XEWH/EYN / @mugiseyebrows --> #F0XEWH/P3T / 2600 дней назад
@lexszero Есть мнение, что в целом да, но вообще не всегда. Если скажем я пишу прошивку для стиральной машины, то ей нафиг не впилась производительность при работе с полями структуры. Правда в ней скорее всего и контроллер будет стоять с физической разрядностью 8, а датчики и исполнительные механизмы будут работать максимум с массивами целых чисел какой-то длины, а скорее всего просто с GPIO. Так что выравнивание там будет скорее всего по байту, но даже если нет, это ничего не изменит. Ну хорошо, а вот если я пишу прошивку для чего-то более сложного и уже немножко децентрализованного, для лифта скажем. Там скорости большой по-прежнему не надо, зато есть до фига более сложных датчиков, которые уже запросто выдают какие-то структуры. Имхо тут логично их выравнивать так, как они на самом деле и есть на железе.
#F0XEWH/4GQ / @dluciv --> #F0XEWH/P3T / 2600 дней назад
@dluciv Си сиплюсплюс делали крахоборы для крахоборов
#F0XEWH/E10 / @mugiseyebrows --> #F0XEWH/4GQ / 2600 дней назад
@mugiseyebrows Угу, вот я о том же. Если не дико важна производительность по времени (и если разрядность делает это всё актуальным, т.е. она 16 и больше), то пускай куски этого сериализатора сгенерирует компилятор и сам распихает, куда надо. Меньше гемора будет же.
#F0XEWH/K29 / @dluciv --> #F0XEWH/EYN / 2600 дней назад
@mugiseyebrows Тем не менее, это нормальный такой кроссплатформенный ассемблер. Вполне удобный. Но местами на удивление не сбалансированный. С одной стороны, на переменную ещё недавно можно было сказать `register`, т.к. компилятору самому уж никак не догадаться было, нужно ли и можно ли её размещать в регистре. Ну ладно в 1970 году, но его ж только в C++11 задепрекейтили. С другой — отсутствие такой вот элементарной и ожидаемой возможности во ручному выравниванию данных в стандартном виде.
#F0XEWH/TUK / @dluciv --> #F0XEWH/E10 / 2600 дней назад
@dluciv > ожидать очевидных возможности от языка в котором каждый класс хранится в не менее чем двух файлах с двойной повторностью всех сигнатур
#F0XEWH/T4J / @mugiseyebrows --> #F0XEWH/TUK / 2600 дней назад
@mugiseyebrows Не, ну это толстовато. Оно же ясно, почему и зачем так. Да, сейчас можно бы было иначе, но имхо это далеко не самое ужасное. Ну и потом зачем слово «класс» писать? Джавой что-то запахло...
#F0XEWH/VUM / @dluciv --> #F0XEWH/T4J / 2600 дней назад
@dluciv > почему Так сложилось исторически > зачем Потерпим
#F0XEWH/AUF / @mugiseyebrows --> #F0XEWH/VUM / 2600 дней назад
@dluciv > зачем слово «класс» Кейвордам языка такой > Джавой что-то запахло Лучше пахнуть жавой чем хаскелем
#F0XEWH/4KF / @mugiseyebrows --> #F0XEWH/VUM / 2600 дней назад
@mugiseyebrows Не, когда у тебя половина программы на ассемблере, например, или скомпилирована, а исходников тебе не дали, то вполне удобно. Частным случаем предыдущего является раздельная компиляция. У плюсов из современных языков и так наверное компиляция самая тормозная. А такое разделение в общем-то помогает. > Так сложилось исторически > Потерпим А ты назови ещё один язык, который уже столько времени живёт и переживёт большинство из того, что появилось после.
#F0XEWH/PDO / @dluciv --> #F0XEWH/AUF / 2600 дней назад
@dluciv Что если кресты живы только потому что настолько старик что ему все уступают место?
#F0XEWH/CO0 / @mugiseyebrows --> #F0XEWH/PDO / 2600 дней назад
@dluciv Алсо за пределами эмбеда и аутизма кресты никому уже не всрались и крестоебов поди поищи.
#F0XEWH/KBG / @mugiseyebrows --> #F0XEWH/PDO / 2600 дней назад
@mugiseyebrows > Лучше пахнуть жавой чем хаскелем Да ну ладно, прямо таки. Java пахнет тупым по́том из подмышек, который выделяется при непрерывной тупой физической работе по 8 часов в день. А Haskell — кожным салом и перхотью, которые забиваются под ногти при активном чесании репы. Haskell поблагороднее пахнет. А Scala чем пахнет?
#F0XEWH/KCJ / @dluciv --> #F0XEWH/4KF / 2600 дней назад
@mugiseyebrows И обработки изображений например, и вычислительной математики. Не обязательно кресты, чистый C скорее всего и их переживёт. Заканчивай злобствовать уже.
#F0XEWH/928 / @dluciv --> #F0XEWH/KBG / 2600 дней назад
@dluciv > разделение в общем-то помогает Помогает быстренько скомпилять объекты и пойти на обед пока оно линкуется
#F0XEWH/I7U / @mugiseyebrows --> #F0XEWH/PDO / 2600 дней назад
@dluciv Хаскел пахнет безработным пониебом борщующим у мамки на шее. Жава пахнет чистенькими банковскими работниками и андроидом. Не нюхал скалу.
#F0XEWH/SGB / @mugiseyebrows --> #F0XEWH/KCJ / 2600 дней назад
@mugiseyebrows Вообще большинство современных линкеров таки инкрементальные. Соответственно дебажный бинарник получается из-за этого весь патченный-перепатченный, и работает потом вроде твоей любимой джавы: относительно быстро собирается, зато потом притормаживает при загрузке и при работе. Релизный со включёнными оптимизациями медленно линкуется, да.
#F0XEWH/A9T / @dluciv --> #F0XEWH/I7U / 2600 дней назад
@dluciv Ну на рынке наверное супердохуя позиций для вычислительных математиков, хорошо что все эти отучившиеся ребята найдут своё место в жизни.
#F0XEWH/2RT / @mugiseyebrows --> #F0XEWH/928 / 2600 дней назад
@mugiseyebrows > Жава пахнет чистенькими банковскими работниками Этсамое. Они снаружи только чистенькие. Типа как военные. Военные тоже обычно отглаженные, побритые и постриженные аккуратно. Чтобы как-то компенсировать прогнившую свою сущность.
#F0XEWH/RB6 / @dluciv --> #F0XEWH/SGB / 2600 дней назад
@dluciv > сомневаться во внутренней чистоте капиталистов > топить за хаскел Фиделя Кастро оплачиваешь тама?
#F0XEWH/KLZ / @mugiseyebrows --> #F0XEWH/RB6 / 2600 дней назад
@mugiseyebrows *оплакиваешь
#F0XEWH/NHF / @mugiseyebrows --> #F0XEWH/KLZ / 2600 дней назад
@mugiseyebrows Ну я как-то всегда с некоторой брезгливостью относился к рынку кузнечиков, которые прыгают туда-сюда и пишут энтерпрайзные информационные системы с вебмордами на своих спрингах и изображают лояльность в отношении конторы, в которой они работают полтора года, а потом валят в другую. Сорри, если это не про типичных программистов на Джаве. Но пока она ещё не смогла стать новым КОБОЛом, то по-моему всё-таки про них.
#F0XEWH/NF1 / @dluciv --> #F0XEWH/2RT / 2600 дней назад
@dluciv Хуй знает как ты будешь программистом с таким снобизмом, сопьешься наверно, или башкой поедешь
#F0XEWH/BNS / @mugiseyebrows --> #F0XEWH/NF1 / 2600 дней назад
@mugiseyebrows Я ж говорю, заканчивай злобствовать. Я могу много плохого про C/C++ написать, но я это хотя бы аргументирую нормально.
#F0XEWH/GZ5 / @dluciv --> #F0XEWH/KLZ / 2600 дней назад
@dluciv > stop talking shit about my waifu Я не злобствую я кекаю ващет
#F0XEWH/XYM / @mugiseyebrows --> #F0XEWH/GZ5 / 2600 дней назад
@mugiseyebrows > как ты будешь программистом с таким снобизмом Ну да, я тоже боялся, пока молодой был. Сейчас вроде норм, сейчас я далеко не сноб уже. > башкой поедешь Все мы рискуем.
#F0XEWH/638 / @dluciv --> #F0XEWH/BNS / 2600 дней назад
@dluciv Снобизм это сорт моногамомразия. Тип раз все ебут жаву, то жава - грязная продажная шлюха, буду ебать хаскел в который непонятно как хуй сувать. Хаскел ведь не за деньги даёт а за душу. Я лучше этого шипла.
#F0XEWH/DEH / @mugiseyebrows --> #F0XEWH/638 / 2600 дней назад
@mugiseyebrows Да блин, я ж не против, если интересная работа на Джаве — пожалуйста. Случалось, кстати, и такое в моей жизни. Я просто честно напираю на стереотипы =)
#F0XEWH/BXZ / @dluciv --> #F0XEWH/DEH / 2600 дней назад
@dluciv > два файла вместо одного > стереотипы лан
#F0XEWH/66O / @mugiseyebrows --> #F0XEWH/BXZ / 2600 дней назад
Потому что упакованные битовые поля тормознее.
#F0XEWH/KFU / @l29ah / 2600 дней назад
@dluciv Давно заменили пиздончиком с биндингом к билиотеке на сишечке.
#F0XEWH/DIQ / @komar --> #F0XEWH/928 / 2600 дней назад
Не возьмусь отвечать, почему так изначально начали делать. А почему продолжают — чтобы не ломать бинарную совместимость.
#F0XEWH/IRL / @anonymous / 2600 дней назад
@komar На чём — на чём библиотека?
#F0XEWH/5GY / @dluciv --> #F0XEWH/DIQ / 2600 дней назад
@l29ah Ты по-моему в логику вопроса вообще не врубился. Если уже я решил тормозные упакованные битовые поля для чего-то использовать, то правильно за это меня взять на короткий поводок и, блин, всё равно выравнивать всё по машинному слову. Ну чтобы типа я понял, что битовые поля не нужны и вообще чтобы не повадно было. Ты это имел в виду?
#F0XEWH/Z7Y / @dluciv --> #F0XEWH/KFU / 2600 дней назад
@dluciv Может, тебе еще рассказать, на чем питончик?
#F0XEWH/ZOW / @komar --> #F0XEWH/5GY / 2600 дней назад
@komar Нет, мне рассказать, в чём пафос того, что ты сказал, что библиотека на сишечке. По-моему ты согласился с тем, что таки библиотека, которая обрабатывает картинки или видосики, написана на Си. Вроде бы я сам ровно то же самое и говорил, опровергая заблуждения насчёт того, что Си якобы не нужен.
#F0XEWH/LPE / @dluciv --> #F0XEWH/ZOW / 2600 дней назад
@dluciv В том, что на сишечке не программируют.
#F0XEWH/TEH / @komar --> #F0XEWH/LPE / 2600 дней назад
@komar А код библиотеки получился ну типа сам? Или откуда он взялся? Расскажи мне, я тогда оттуда же диссертацию себе возьму пожалуй.
#F0XEWH/JPS / @dluciv --> #F0XEWH/TEH / 2600 дней назад
@dluciv Код библиотеки получен методом найма тупых байтоебов за еду. А потом уважаемые люди берут пездончик и проводят эту свою вычислительную математику.
#F0XEWH/QJX / @komar --> #F0XEWH/JPS / 2600 дней назад
@komar Ну да, давай найми авторов OpenCV или MKL, скажем, за еду
#F0XEWH/DQQ / @dluciv --> #F0XEWH/QJX / 2600 дней назад
@dluciv Нанял, что дальше?
#F0XEWH/UCB / @komar --> #F0XEWH/DQQ / 2600 дней назад
@komar Пруф
#F0XEWH/XHS / @dluciv --> #F0XEWH/UCB / 2600 дней назад
@dluciv тоесть если проект использует майэскьюэл который написан на си и его биндинги ко всем языкам на си, значит в команду нужен будет разработчик со знанием си, интересно, расскажи по-подробнее
#F0XEWH/614 / @mugiseyebrows --> #F0XEWH/LPE / 2600 дней назад
@dluciv разрабочики опенсиви разрабатывают его не за еду, а за звёздочки на гитхабе если что
#F0XEWH/83V / @mugiseyebrows --> #F0XEWH/DQQ / 2600 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.