LINUX.ORG.RU

В стандарт C предложено внести лямбды и defer из golang

 , ,


5

6

Привет, ЛОР!

Я тут тебе немного покушать принёс. Как ты, наверное знаешь, не за горами выход нового стандарта языка C – C23. Среди прочих вкусностей, таких как лямбды в стиле C++, в этот стандарт предложено добавить механизм defer, аналогичный существующему в языке Go.

Ссылка на предложение: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2895.htm

В случае, если этот стандарт будет принят, будет возможно написание вот такого кода:

p = malloc(N);
defer { free(p); }

Где аргументом оператора defer является анонимная функция. Так же возможны более сложные варианты использования:

enum { initial = 16, };
double buffer[initial] = { 0 };
...
size_t elements = 0;
double* q = buffer;
defer [orig = q, &q]{ if (orig != q) { free(q); }};
...
// increase elements somehow
...
// adjust the buffer
if (elements > initial) {
    double* pp = (q == buffer) ? malloc(sizeof(double[elements])) : realloc(q, sizeof(double[elements]));
    if (!pp) return EXIT_FAILURE;
    q = pp;
}
...

Учитывая всё это, скоро в C больше не будет нужно использовать goto вообще нигде, даже для очистки ресурсов при ошибке. Так заживём, ЛОР!

Ответ на: комментарий от Stanson

В итоге запилили, конечно, Qt для симбиана, что избавляло от этого всего геморроя, но было уже совсем поздно.

Да, было поздно из-за появления андроида и айфона.

ксеноновая газоразрядная лампочка, которая в принципе не может светить постоянно

а как на авто используются ксеноновые лампы? или там особый ксенон? гуглить, честно, лень, можешь не отвечать. допустим, с фонариком я промахнулся, но всё равно в смерти симбиана считаю больше повинными сенсорные устройства и маркетинговые ходы гугла и эппла. Блэкберри сдох по этой же причине.

Мальварь и рекламу в них было запихивать проблематично, из-за политики симбиановских магазинов, поэтому никто и не струячил их тысячами как для ведроида.

Кстати, раз разговор пошел о капсах. Мне уже забылось, и я привираю, или Нокия тогда в конечном итоге закрыла выдачу сертификатов разработчикам для подписи приложений? То есть налицо война с потенциальными разрабами, которые вашу же платформу делают более привлекательной для потребителя.

Virtuos86 ★★★★★
()
Ответ на: комментарий от Virtuos86

а как на авто используются ксеноновые лампы?

Никак. Они там вообще не ксеноновые и никогда никто не выпускал ксеноновых ламп для автомобилей. В автомобилях газоразрядные металл-галогенные используются. Ксенон в них бывает но в свечении никак не участвует, он там чисто в качестве инертного газа, чтобы металлы(ртуть с натрием) не реагировали и для начального поджига.

Ксеноновые лампы постоянного свечения существуют, но они дуговые и их рабочая мощность начинается с нескольких киловатт.

маркетинговые ходы гугла и эппла.

Линукс на телефонах после разгрома Нокии никуда не делся, например. Если бы у симбиана было хоть какое-то коммьюнити, он бы в той или иной степени выжил бы.

Нокия тогда в конечном итоге закрыла выдачу сертификатов разработчикам для подписи приложений?

Нет, Для Epoc32 и Symbian до S40 никаких сертификатов вообще не надо было. Сертификаты появились только в S60 и то, по-моему только в v3. Или до v3 они были необязательны, типа как в венде для программ и драйверов, не помню. Коммерческий разработчик за $$ покупал сертификат и мог публиковать свой коммерческий софт в магазине. Бесплатные программки Нокия подписывала даром после тестирования и выкладывала в магазине, если там говна не было. Можно было самоподписанный использовать, только в телефоне разрешить установку софта с самоподписанными сертификатами. Но самоподписанные сертификаты к каким-то особо чувствительным фичам доступа не давали, в отличии от девелоперского. Геморройно было получить бесплатный девелоперский сертификат, которым можно было подписывать софт для максимум 5 телефонов, IMEI которых надо было в реквесте указать, но потом Нокия сделала opensymbian.com и там всё стало просто, а коммерческий сертификат стал стоить чуть ли не $100 всего.

На самом деле не такая уж и большая проблема была с этими сертификатами.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

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

на сишке уже лет 10 не начинают новые крупные проекты
сишка идет по пути кобола - только легаси

anonymous
()
Ответ на: комментарий от Stanson

это бесполезно. это понимают только те, кто работал в реальной разработке. а школота никогда в жизни железок не видела. там из всего опыта только «hello, world» обычно и ничего более. и все их проблемы проистекают от глупости и выстрелов себе в ногу. отсюда и всё влажные фантазии на тему «каким должен быть ЯП, чтобы всё само собой работало без применения мозга».

Си - это для тех, кто понимает, что делает. это профессиональный остро заточенный инструмент и детям его давать нельзя. они и себя покалечат и другим навредят.

Iron_Bug ★★★★★
()
Ответ на: комментарий от anonymous

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

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

случай так называемого вранья.

ну назови крупные сишные проекты, которые появились за последние 10 лет

anonymous
()
Ответ на: комментарий от anonymous

весь ваш веб, в котором вы сидите, работает на сишечке. это TLS, это HTTP/{1,2,3}, это работа железа, серверов и многое другое. просто люди не замечают, что сеть сама по себе - это просто куча железа и проводов. и кто-то пишет софт, чтобы всё это работало. и его пишут постоянно. и новое железо, новые протоколы порождают новые дрова, новые библиотеки. это всегда так было. софт на Си не должен быть заметным. если он становится заметным - это уже проблема, это значит, что что-то пошло не так. поэтому люди и думают, что его нет. но он есть и без него сейчас не будет работать ничего. от простых компов, мелких гаджетов, до сетей, серверов и крупных вычислительных машин.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

Си - это для тех, кто понимает, что делает. это профессиональный остро заточенный инструмент и детям его давать нельзя. они и себя покалечат и другим навредят.

Покажи мне проект на C без детских ошибок, пожалуйста. Hello world не в счет.

anonymous
()
Ответ на: комментарий от Iron_Bug

весь ваш веб, в котором вы сидите, работает на сишечке. это TLS, это HTTP/{1,2,3}

RustTLS быстрее openssl, в curl включили reqwest. Where is your god now?

anonymous
()
Ответ на: комментарий от anonymous

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

Iron_Bug ★★★★★
()
Ответ на: комментарий от anonymous

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

но Си никуда не денется, как вы не старайтесь. эти жалкие потуги пропихнуть костыли для неосиляторов в серьёзную разработку не проканают. таких уже было много за 30 лет и всё это ничем не закончилось. Си и ныне там :)

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

это всё школота.

Автор CURL – школота? Или Greg KH, который не против включения Rust в ядро, школота?

anonymous
()
Ответ на: комментарий от anonymous

а от ржавчины мозгов есть простое средство: нет и никогда не будет никакого автоматического управления памятью, более быстрого и оптимального, чем это делает разработчик. так что там даже шансов нет.

а враньё школоты про скорость - ну, это просто враньё и притягивание за уши. хотя OpenSSL не самый удачный проект: там большой и довольно запутанный код, в котором много легаси и просто всякого мусора (я его смотрела и даже правила иногда). я лично больше люблю LibreSSL, он написан красивее, хотя кое-каких фич в нём нет. но я свой дистрибутив держу на нём. пока что я не вижу проблем с упиранием в производительность OpenSSL. в TLS всё упирается в криптографию, которая вообще написана на ассемблере, к кернеле и там больше тормозов при переходах в кернел-спейс и при работе с фичами процессора, если кернел не заточен под конкретное железо. а сам по себе OpenSSL лишь прослойка, по сути.

и да, для фанатов скорости есть море библиотек криптографии, от гугловского BoringSSL до вариантов вроде PicoTLS для эмбеддеда и прочего. их несколько десятков, все написаны на сишечке. потому что криптография требует оптимизации. выбор библиотеки зависит от того, что тебе нужно. большинство софта сейчас ориентируется на OpenSSL, хотя для подавляющего количества софта как раз все его навороты и не нужны. но это просто традиция.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от anonymous

ну, они просто пали жертвами пропаганды и давления копрорастов. но curl и без этого овна проживёт прекрасно, я думаю. равно как и кернел.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

вообще, проблемы криптографии чаще всего не в софте, а в харде. только если хард не поддерживает криптографию, происходит эмуляция в софте. но это сейчас редкость и говорить, что OpenSSL что-то «тормозит» - это глупо. любое профилирование показывает, что там бОльшая часть времени уходит на работу системы и проца. ну и тем более если там сеть, то это ещё работа с периферией. узкие места вовсе не в софте юзерспейса. причём на серверах это вообще не проблема, там есть поддержка многоядерной параллельной обработки сетевых данных. а на юзерских компах просто нет такой нагрузки, чтобы OpenSSL что-то там существенно «тормозил». там тормозных говен обычно и без него достаточно :)

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

таких уже было много за 30 лет и всё это ничем не закончилось.

за 30 лет даже числовые параметры компьютеров выросли на два порядка, и это я ещё не вспоминал многоядерность

подгузники для протечек памяти нужны только тем, кто не может сам за себя отвечать

любой человек делает ошибки, так что лучше, чтобы технология предохраняла от этих ошибок по дефолту, если же хочется «сам за себя отвечать» - пишешь unsafe и потом git blame покажет, кто где срал

копрорасты

потому что копрорасты умеют считать время и деньги, им ваше «я художник, я так вижу» само по себе нафиг не сдалось

костыли для неосиляторов в серьёзную разработку

серьёзная разработка - она в первую очередь про безопасность, а не про байтодроч

anonymous
()
Ответ на: комментарий от anonymous

и что, что выросли? я пока вижу, что весь софт, который пишет школота, которая не может в сишечку, становится жуткой жручей тормозной блоатварью, которая умудряется сожрать все эти ресурсы. при том, что сишечка-то работает даже на микроконтроллерах. казалось бы, с увеличением производительности мы должны переместиться в сетевой рай, где всё работает мгновенно. но нифига. а почему? а потому что натащили всякий неликвид в разработку. тех, кто раньше клеил коробочки и собирал розетки. сейчас полдурки, которые не понимают, как работает система, работают «тоже программистами». и для них нагородили кучу скриптятины, чтобы они себе в ногу не выстрелили. отсюда и результат: железо мощное, а сети загружены всяким шлаком и тормозят. и это не проблема кернела, написанного на сишечке. и не проблема OpenSSL. это проблема неосиляторов, которых пустили в разработку, как козла в огород. поэтому я вдвойне против всяких памперсов в разработке. чем больше в разработке неосиляторов - тем хуже будет качество софта. и попытки снижать порог вхождения только усугубляют ситуацию. это не решение проблемы, это создание куда более опасной и глобальной проблемы - говнософта.

Iron_Bug ★★★★★
()
Ответ на: комментарий от anonymous

да, и безопасность - она про квалификацию разработчиков, а не про то, чтобы обезьяну бить током, когда она не туда залезла.

Iron_Bug ★★★★★
()
Ответ на: комментарий от anonymous

безопасность обеспечивается хорошим пониманием того, что человек пишет в коде. попытки тащить неосиляторов в разработку и огораживать их вольером, чтобы они не порушили систему и не поломали всё остальное, - это не выход. это просто накрывание кучи экскрементов бумажкой. сейчас на серверах говнософт запускают в контейнерах. «для безопасности». но это не безопасность. это просто попытки прикрыть вот ту самую субстанцию. потому что нормальный софт не должен падать и течь, но неосиляторы, которые не понимают, как устроена память и как работает система, всё равно будут косячить и писать говнокод. а все загоны для скота, которые ради этого создали, только пожирают ресурсы, за которые бьются разработчики процессоров и памяти. получается, что мы имеем колоссальные ресурсы, но просаживаем их на защиту от деятельности недоразвитых. была такая китайская народная мудрость (не дословно, но как-то так): развитие недоразвитых полезно для самих недоразвитых, но вредно для окружающих.

Iron_Bug ★★★★★
()
Ответ на: комментарий от anonymous

популярность среди кого? кто это измерял?

и ссылка на ютуб... я не не хожу по таким ссылкам. у меня нет на это времени. если есть исследования, должны быть методы и результаты, и какой-то pdf как минимум, а не ютуб.

но пока что изменений в необходимости сишного софта как-то не заметно. то, что основной массе Си недоступен - это факт. но он и не должен быть доступен и «популярен». для этого надо учиться и набирать опыт. так что не нужны миллионы разработчиков на Си, их столько быть не может. и это нормально.

Iron_Bug ★★★★★
()
Ответ на: комментарий от anonymous

Ну и где же эти начатые крупные проекты? За 10 лет так каменный цветок и не вышел, да?

Stanson ★★★★★
()
Ответ на: комментарий от Iron_Bug

я пока вижу, что весь софт, который пишет школота, которая не может в сишечку, становится жуткой жручей тормозной блоатварью, которая умудряется сожрать все эти ресурсы.

значит могут себе позволить

при том, что сишечка-то работает даже на микроконтроллерах

не только сишечка, к слову, опять же, что такое мир микроконтроллеров по сравнению с вездесущим вебом? Ну да, есть оно где-то там в промке, но большей части пользователей это не нужно, они смотрят в мир через смартфон/планшет.

казалось бы, с увеличением производительности мы должны переместиться в сетевой рай

В какой-то мере мы(программисты) в нём и находимся, то, что существуют языки, которые позволяют напрямую описывать бизнес-задачу буквально в терминах бизнеса (а не «возьми вот этот байтик и положи туда») - это прекрасно!

, где всё работает мгновенно. но нифига. а почему?

а потому что натащили всякий неликвид в разработку. тех, кто раньше клеил коробочки и собирал розетки. сейчас полдурки, которые не понимают, как работает система, работают «тоже программистами».

да называй их как хочешь, индустрии нужны люди и нужно, чтобы эти люди решали конвейерно и предсказуемо задачи, а вот свободные художники c 0x5F3759DF нужны в очень узких сферах

и для них нагородили кучу скриптятины, чтобы они себе в ногу не выстрелили

ну тащемта, язык Си ортогонален «скриптам» (привет, tcc), так что давайте-ка точнее в формулировках

отсюда и результат: железо мощное, а сети загружены всяким шлаком и тормозят

Да нормально вроде работает всё, сети так вообще летают, вспоминаю как 20 лет назад всё скрипело НЖМД, падало на каждый чих (привет, С, да), интернеты на оленях.

anonymous
()
Ответ на: комментарий от Virtuos86

Блэкберри сдох по этой же причине.

Blackberry сдох, потому что руководство Blackberry до последнего не верило, что кому-то вообще нужны сторонние приложения. На Blackberry 7 с этим был полных ахтунг. Чтобы удалить приложение на моём Bold 9900, нужно было телефон перезагружать. Ну и большинство стороннего софта было таким, что хотелось убиться и не ставить вообще ничего.

В BB10 стало получше, но уже был 2013 год на дворе и было немного поздно. Там даже поддержку софта с ведроеда запилили, только половина приложений не работала, а вторая выглядела инопланетно как минимум.

А нокла сдохла, потому что пыталась усидеть на трёх стульях одной жопой. И жопа в итоге слегка порвалась.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от Iron_Bug

сейчас на серверах говнософт запускают в контейнерах. «для безопасности». но это не безопасность. это просто попытки прикрыть вот ту самую субстанцию. потому что нормальный софт не должен падать и течь, но неосиляторы, которые не понимают, как устроена память и как работает система, всё равно будут косячить и писать говнокод. а все загоны для скота, которые ради этого создали, только пожирают ресурсы, за которые бьются разработчики процессоров и памяти. получается, что мы имеем колоссальные ресурсы, но просаживаем их на защиту от деятельности недоразвитых.

Ну кто ж виноват, что сишники не могут нормальный софт-то писать? Контейнеры, кстати, не помогают, потому что ведро дырявое насквозь.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от Iron_Bug

а от ржавчины мозгов есть простое средство: нет и никогда не будет никакого автоматического управления памятью, более быстрого и оптимального, чем это делает разработчик. так что там даже шансов нет.

Ахахахахахахахаха. аха. ха. Простите. Расскажи пожалуйста, в чем разница между

{
    struct foobar *f = malloc(sizeof(*f));

    ...

    free(f);
    return;
}

и

{
    let f = FooBar::new();
    
    ...

    return; // f freed here
}
anonymous
()
Ответ на: комментарий от anonymous

Да нет, она права. Если ты не освобождаешь память, а твоё приложение падает от сегфолтов каждые 5 минут и его перезагружают, то это действительно гораздо быстрее. Даже от фрагментации памяти спасает!

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от Iron_Bug

попытки снижать порог вхождения только усугубляют ситуацию. это не решение проблемы, это создание куда более опасной и глобальной проблемы - говнософта.

+100500.

Вспоминается история с i2p который будучи неплохой идеей был изначально реализован жабомакаками на жабе. Разумеется, ни один вменяемый человек не захотел этим пользоваться. И только когда был написан i2pd на сях, это всё хоть как-то начало шевелиться, но момент-то уже был упущен. Они не только говнософт создают, они убивают годные идеи, которые вполне могли бы взлететь, если бы были реализованы на сишечке. Таких случаев далеко не один, можно вспомнить сходу всякие матриксы и прочую шнягу где клиенты/сервера написаны на каких-то хипстерских убожествах.

Мало того, допуск дебилов неспособных осилить указатели, байтики и битовую арифметику к созданию софта не только приводит к глобальной жопе с говнософтом, но и создаёт других идиотов, уже потребителей этого говнософта, которые думают что какой-нибудь сраный мессенджер так и должен тормозить и жрать ресурсы, а для p2p сети непременно нужен большой сервак способный выдержать жабу.

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 1)
Ответ на: комментарий от anonymous

Если вы не способны самостоятельно увидеть эту очевидную и весьма приличную разницу, то тут уже совсем ничего не поможет.

Вы просто не понимаете как работает ваш компьютер, как устроены ваши язычки программирования, что это всё и зачем. Совсем не понимаете. Соответственно, ничего кроме никому не нужного шлака написать никогда не сможете.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

Если вы не способны самостоятельно увидеть эту очевидную и весьма приличную разницу, то тут уже совсем ничего не поможет.

Вы просто не понимаете как работает ваш компьютер, как устроены ваши язычки программирования, что это всё и зачем. Совсем не понимаете. Соответственно, ничего кроме никому не нужного шлака написать никогда не сможете.

То есть ты тоже не понимаешь где там performance hit? Ну вот и я о чем.

anonymous
()
Ответ на: комментарий от anonymous

не только сишечка, к слову, опять же, что такое мир микроконтроллеров по сравнению с вездесущим вебом?

Ты совсем упоролся? У тебя в доме микроконтроллеров в десятки раз больше чем того что может в веб. И каждый из них работает по программе написанной на сишечке/ассемблере. И ни в одном из них нет ничего написанного на модных хипстерских язычках.

Ну разве что в твоей банковской карточке может работать кусочек кода написанный на жабобейсике (нет, это не жаба, это бейсик с синтаксисом жабы), но и то, интерпретатор этого жабобейсика, всё равно написан на сишечке/ассемблере.

Софта который ты реально используешь для реальных вещей намного больше чем тебе кажется. И абсолютно весь он написан на сишечке/ассемблере.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

Софта который ты реально используешь для реальных вещей намного больше чем тебе кажется. И абсолютно весь он написан на сишечке/ассемблере.

Ичо? Этот софт пишется китайцами за плашку риса, его потом не обновляют годами, а на дыры просто всем покласть, пока никто не умрёт. Я до сих пор угораю над той дырой в тормозах Тойоты, где говнокодеры на асмосишечке умудрились сделать, чтобы при нажатии тормоза машина только ускорялась. Сколько глючного говна вокруг на ассемблере и C, просто диву даёшься.

Ты никогда вот не думал, почему все домашние и не только роутеры – такое редкостное говно? У них же прошивки как раз на C. Даже веб-морда часто на нём.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Там performance failure по полной программе. Особенно если пишущий на хипстерском волапюке думает что new и RAII это какая-то волшебная бесплатная магия.

Когда ты рулишь памятью вручную, ты обязательно задумаешься - а надо ли тебе памяти у системы в очередной раз запрашивать, или можно уже выданную использовать. А в хипстерских язычках всякие new в цикле - это вообще в порядке вещей. Потому что для любителей хипстерских язычков это волшебная магия завёрнутая в синтаксический сахарок, который так удобно не думая писать.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

Так где хит-то? Что именно тормозить будет, расскажи пожалуйста.

anonymous
()
Ответ на: комментарий от Stanson

А в хипстерских язычках всякие new в цикле - это вообще в порядке вещей

А кто тебе сказал, что этот new запрашивает память у системы через malloc/mmap?

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от Stanson

Возможно тебе проще будет сделать это на примере.

Rust:

fn main() {
    let mut s = String::from("");
    return;
}

C:

#include <string.h>
#include <stdlib.h>

int
main(void)
{
	char *s = strdup("");
	free(s);
	return 0;
}

Оба собраны без оптимизаций. Листинги:

...

0000000000008300 <example::main>:
    8300:       48 83 ec 18             sub    $0x18,%rsp
    let mut s = String::from("");
    8304:       48 89 e7                mov    %rsp,%rdi
    8307:       48 8d 35 42 2d 03 00    lea    0x32d42(%rip),%rsi        # 3b050 <_fini+0x588>
    830e:       31 c0                   xor    %eax,%eax
    8310:       89 c2                   mov    %eax,%edx
    8312:       e8 e9 0f 00 00          call   9300 <<alloc::string::String as core::convert::From<&str>>::from>
    return;
}
    8317:       48 89 e7                mov    %rsp,%rdi
    831a:       e8 01 f2 ff ff          call   7520 <core::ptr::drop_in_place<alloc::string::String>>
    831f:       48 83 c4 18             add    $0x18,%rsp
    8323:       c3                      ret
    8324:       66 2e 0f 1f 84 00 00    cs nopw 0x0(%rax,%rax,1)
    832b:       00 00 00
    832e:       66 90                   xchg   %ax,%ax

...

C:

0000000000001149 <main>:
    1149:	55                   	push   %rbp
    114a:	48 89 e5             	mov    %rsp,%rbp
    114d:	48 83 ec 10          	sub    $0x10,%rsp
    1151:	48 8d 05 ac 0e 00 00 	lea    0xeac(%rip),%rax        # 2004 <_IO_stdin_used+0x4>
    1158:	48 89 c7             	mov    %rax,%rdi
    115b:	e8 e0 fe ff ff       	call   1040 <strdup@plt>
    1160:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    1164:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
    1168:	48 89 c7             	mov    %rax,%rdi
    116b:	e8 c0 fe ff ff       	call   1030 <free@plt>
    1170:	b8 00 00 00 00       	mov    $0x0,%eax
    1175:	c9                   	leave
    1176:	c3                   	ret
    1177:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
    117e:	00 00
anonymous
()
Ответ на: комментарий от hateyoufeel

его потом не обновляют годами

Объясни же скорее, зачем нужно постоянно обновлять софт в кофеварке.

Откуда этот дебилизм про необходимость обновления софта взялся вообще? Я не обновляю софт в пылесосах, кофеварках, стиральных машинках, и десятке микропроцессоров в своих древних автомобилях. Зачем мне может понадобиться это делать?

Я до сих пор угораю над той дырой в тормозах Тойоты, где говнокодеры на асмосишечке умудрились сделать, чтобы при нажатии тормоза машина только ускорялась.

Ну так в программизм полезли идиоты - любители абстракций и т.п. Уже почти полвека в тормозной системе автомобилей используются микропроцессоры, как минимум для управления ABS. И проблемы начались только когда поднялся хайп и реклама хипстерских язычков и соответствующих парадигм программирования, и значительно более дешёвые носители этого говна попали в индустрию, на место квалифицированных программистов. Язычки для дебилов реально снижают общую культуру производства, даже если сами эти язычки на производстве не используются. «Goto это плохо, его нельзя применять в написании софта для тормозной системы!!!1111 Надо написать софт для тормозной системы без goto!!!!111». Ну получите и распишитесь.

Но всё ещё хуже. Концепции безмозглого программирования и всей этой сраной перманентной «интеграции» и «модернизации» с использованием труда дебилов уже отравляют не только саму суть производимых вещей, но и мозги потребителей. Вот ты радостно пишешь про Тойоту, которая разгонялась при нажатии на тормоз. А в твоей пустой голове совершенно случайно не возникло вопроса, а какого хрена тормозная система вообще оказалась связана с управлением двигателем и коробкой? Очевидно не возникла. А ведь это ровно тот же самый деиблизм, что и запихивание в init всего подряд или запихивания в браузер видеоплеера. Ровно тот же самый, порождённый вот этой всей современной безмозглой хипстерской повесточкой созданной теми, кто вообще не понимает как всё устроено.

Clown world.

То-ли ещё будет, когда софт для ECU начнут писать на ноде, расте или ещё какой говнине, а из индустрии уйдут последние вменяемые люди. Случай с Тоётой покажется цветочками. «Тормозная и рулевая системы в данный момент обновляются, дождитесь завершения обновления и пере…..» А то и вовсе - «вы/ты/они/оно/ещё1500pronouns’ов токсично подумали о неграх за рулём, поэтому управление вашим автомобилем заблокиорвано».

Наслаждайтесь своим говном. Вот только избавьте остальных от его рекламы.

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 3)
Ответ на: комментарий от hateyoufeel

А кто тебе сказал, что этот new запрашивает память у системы через malloc/mmap?

А, т.е. оно при запуске сразу выжирает всю доступную память чтобы не запрашивать потом у системы?

Блин, какие же вы клоуны. :)

Stanson ★★★★★
()
Ответ на: комментарий от anonymous

А что же ты постеснялся привести листинг того, что находится по адресам 9300 и 7520 например?

Тут даже сходу виден масштаб звездеца - 9300/7520 и 1040/1030. А, ну да, ты же не умеешь в указатели и всё что не написано в твоём коде это волшебная магия…

Вот так и исчезает вера в человечество.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

Там куча левого кода не имеющего отношения к делу. Я его и в сишной версии не стал приводить. Так вот, покажи, пожалуйста, где тормоза в освобождении строки.

anonymous
()
Ответ на: комментарий от Stanson

Там куча левого кода не имеющего отношения к делу. Я его и в сишной версии не стал приводить. Так вот, покажи, пожалуйста, где тормоза в освобождении строки.

anonymous
()
Ответ на: комментарий от anonymous

Ты зазубрил какие-то модные словечки вкупе с мантрой «более эффективно» не имея ни малейшего понятия что они на самом деле означают? Так мне это давно известно.

Stanson ★★★★★
()
Ответ на: комментарий от anonymous

Ещё разок напиши, а то я за 2 раза не распарсил.

Бгг. Вот такие и топят за всякие расты. Запостить сообщение нормально не могут. На форум написанный на жабке. Сцуко, это же просто праздник какой-то! :) :) :)

Stanson ★★★★★
()
Ответ на: комментарий от anonymous

Ну что поделать, пальцы-сосиски.

Ага. И мозги-пельмени.

Так по делу-то будет что-нибудь или слив защитан?

Ну как приведёшь листинг своей волшебной магии чудесного язычка в сравнении с сишечкой, так и защитаем твой слив.

Stanson ★★★★★
()
Ответ на: комментарий от anonymous

Мы-то знаем не только про слаб, но и про то, как его сделать если нужно и про те случаи, когда его применение реально оправдано. А ты даже понять не можешь, что в твоём примере слаб это просто ненужный оверхед и растрата ресурсов.

Slab allocation в тему, например, когда ты постоянно создаёшь и уничтожаешь одинаковые объекты. Внезапно. Ага, new в цикле. Типичнейший косяк любителей хипстерских язычков. Ненуачо, компилятор/интерпретатор же не ругается, и работает же.

Вот только в твоём примере объект создаётся в начале работы программы и уничтожается в конце. И он один. Slab тут вообще никак не поможет, и просто впустую сожрёт ресурсы.

Ты не понимаешь даже как твой Hello World работает, но тем не менее пытаешься что-то тут вякать и трясёшь «модными», как тебе кажется, словечками. :) Нет, slab allocation это древняя хрень, испольуемая, например, в написанном на сишечке ядре linux чуть ли не со времён 2.2, там где это уместно. И не испольуемая там где она нафиг не нужна. А придумана вообще х.з. когда.

Видишь, на сишечке, если тебе надо - можешь slab allocation сделать, можешь pool allocation использовать, можешь даже buddy или ещё какую хрень пользовать, даже свою собственную. А можешь вообще статикой обойтись. Исходя из задачи. А не жрать что дают, при этом пытаясь всех убедить, что то, что дали - это самое лучшее и тебя не обманули. Нунуачо, написали же что «более эффективно» же.

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 1)

В некоторых постах делают вывод плох из-за того, что имеется плохие проекты в которых используется Си.

Но плохой проект-то можно написать на любом ЯП!
При этом забывают вспомнить о ГИГАТОННАХ хороших проектов на Си. Все КАК ОБЫЧНО.

ЯЙЦА МЕШАЮТ, а виноват Си! ...

Владимир

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.