1. C++ / Говнокод #23836

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    #include <xmmintrin.h>
    
    void crasher() {
        constexpr __m128 w = {1,2,3,4};
        asm ("addps %[w], %[w]" : : [w] ""(w));
    }

    Крашим GCC
    https://ideone.com/iIAN0i

    Запостил: Antervis, 28 Февраля 2018

    Комментарии (58) RSS

    • а где тут, собственно
      Ответить
    • https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84625 - отрепортил

      Кстати в clang мне тоже есть что зарепортить(накопилось кое-какой хуиты), но они там для регистрации требуют чтоб я куда-то что-то писал и говорил свой full name, так что обойдутся
      https://bugs.llvm.org/
      New user self-registration is disabled due to spam. For an account please email bugs-admin@lists.llvm.org with your e-mail address and full name.
      Ответить
      • Отрепортил тебе в анус, проверь.
        Ответить
      • > with your e-mail address and full name.

        Забей, напиши на это мыло сразу описание багов.
        Ответить
      • Тебе там какой-то Jakub напесал, проверь
        Ответить
      • Not a Bug, Wontfix, kokokoko.
        gcc-way, хуле.

        Может стоило выхлоп краша приложить?
        Ответить
        • В принципе я согласен с решением. Не тратить время на какую-то непонятную никому ненужную хуйню. Лучше пойти пофиксить реальные баги.

          P.S. А где там wontfix? Вроде и патч уже есть.
          Ответить
          • Упдате. Я истолковал его первые 2 коммента как простое нежелание это фиксить.
            Ответить
    • показать все, что скрытоКого ебет ваше "gcc"? Кто на этом "С" еще пишет?
      Ответить
      • дурак чтоли?
        Ответить
      • Микроролроллерщики
        Например, Борманд.
        Ответить
        • А кроме них?
          Ответить
          • Гугл, яндекс, фейсбук, вконтакте, оракл, майкрософт
            Хуйня корочи
            Ответить
        • Но нахуя? С++ прекрасно подходит для таких задач.
          Ответить
          • А если конпелятора для твоей железяки нет?
            Ответить
          • Если мне надо считать байт по адресу 123, установить ему в единичку флажок в третьем бите и записать его обратно, то зачем мне C++?
            Ответить
            • А вот если тебе понадобится этот флажок убрать по выходу из функции - С++ уже пригодится.
              Ответить
              • А зато си в тысячу раз проще и понятнее, вот
                Ответить
                • даже с11?
                  Ответить
                  • ну если сравнивать последние плюсы с сями то наверное в полторы тысячи:)

                    Я вообще с треском перехожу на новые стандарты. Я помню что долго очень не пользовался VLA и декларировал перменные вверху функции, хотя на дворе уже давно был C99
                    Ответить
                • мне кажется, есть специальное слово для таких ситуаций. Как там оно? Неосилятор, вроде
                  Ответить
                  • Давай, давай, а ну, давай,
                    Меня шмонай ты, вертухай,
                    Да загляни под юбочку,
                    Да посмотри на булочки.
                    Понюхай попку носиком,
                    Прикинься, киса, пёсиком,
                    Вот в этом вся и разница,
                    Кто хочет, а кто дразнится.

                    ©Любимая группа мамки админа
                    Ответить
      • Линукс на сях написан - у плюсовиков когда они видят костыль агрегации вместо наследования и макросные псевдофункции вместо функций на шаблонах, хендловое псевдоООП глаза начинают сочится кровью, а сфинктер срочно начинает требовать охлаждения.
        Ответить
        • > костыль агрегации вместо наследования

          Костыль — это в другую сторону.

          > сфинктер срочно начинает требовать охлаждения

          Если у тебя пригорает, не нужно на всех плюсовиков распространять. Если виртуальные интерфейсы в паре мест в ядре нужны, проще там «ООП» вручную навернуть.
          Ответить
        • Вообще-то агрегация это когда N объектов имеют интерфейс Foo, и ты создаешь объект с интерфейсом Foo который последовательно делегирует вызов всем этим объекам

          Это частный случай делегирования, так что говорить правильнее о делегирование vs наследование.

          Так что делегирование почти всегда лучше наследования, это известно даже в ООП мире. В некоторых ЯПах даже сахар для этого есть.
          Ответить
          • Дал тебе слизать подзалупный сахарок с моего хуя, проверь.
            Ответить
          • https://ideone.com/Rzv3ru - Я про эту байду.
            Ответить
            • ок, я тебя понял. Это правда composition.

              но даже в самой распоследней Java я бы лучше хранил _internal внутри External а не стал бы без дела наследовать одно от другого

              На всякий случай вот букварь про has-a vs is-a:
              https://www.w3resource.com/java-tutorial/inheritance-composition-relationship.php
              Ответить
              • Это не значит что наследование не нужно - просто когда среди полей структуры даже видишь указатели на функции которые надо инициализировать чтоб что-то там сделать с поправкой на сей костыль, то понимаешь что в таком возрасте с онанизмом завязывают и заводят девушек нужна хотя-бы начальная поддержка ООП.
                Ответить
                • > начальная поддержка ООП
                  Не ООП, а полиморфизма.
                  Ответить
                  • Ну в этом случае реализация метода неотделима от объекта к которому она применяется - так что я за ООП.
                    Ответить
                    • Оказывается, есть что-то более раздражающее, чем адепты Rust, которые гордо заявляют, как переписывание на расте решает все проблемы.
                      Это адепты ООП, которые утверждают, что умышленное неиспользование ООП — это фатальный недостаток.
                      Ответить
                      • Умышленное неиспользование ООП? Нет, правильнее сказать, умышленное не использование инструментов поддерживающих ООП, при использовании самой концепции ООП.
                        Ответить
                        • Поддержка ООП науровне языка имеет две проблемы:

                          1) она усложняет код. Понять во что скомпилируется процедурный код куда проще, чем понять что случится в случае вызова виртуального метода с динамическим диспатчем (таблицы методов, то-сё).

                          НЕКОТОРЫЕ считают что чем код проще -- тем лучше.

                          2) Почти все реализации ООП в мейнстримовых языках уёбищны, и это вызывает стойкое отвращение у НЕКОТОРЫХ.

                          А так же: наличие/отсутствие ООП сахара в языке очень слабо влияет на качество кода и качество API. Это очень странно, я сам с начала в это не верил, но теперь отчетливо вижу что 90% кода вокруг меня и 90% API -- полное говно. И не важно: процедурно это говно или с классами, методами и конструкторами.

                          Оставшиеся 10% разделены примерно поровну между процедурным и ООПшным стилем.

                          Продумать хорошую иерархию классов -- сложно, большинство говнокодеров с этим не справляются, и в результате у них получается ебучее месиво, а благодаря ООП к тому же еще и сложное.
                          Лучше бы процедурно написали, ейбогу:)
                          Ответить
                          • Давай, давай, а ну, давай,
                            Меня шмонай ты, вертухай,
                            Да загляни под юбочку,
                            Да посмотри на булочки.
                            Понюхай попку носиком,
                            Прикинься, киса, пёсиком,
                            Вот в этом вся и разница,
                            Кто хочет, а кто дразнится.

                            ©Любимая группа мамки админа
                            Ответить
                          • Давай, давай, а ну, давай,
                            Меня шмонай ты, вертухай,
                            Да загляни под юбочку,
                            Да посмотри на булочки.
                            Понюхай попку носиком,
                            Прикинься, киса, пёсиком,
                            Вот в этом вся и разница,
                            Кто хочет, а кто дразнится.

                            ©Любимая группа мамки админа
                            Ответить
        • > плюсовиков когда они видят костыль агрегации вместо наследования

          Наследование само по себе один здоровенный костыль.
          Вроде 2к18, а еще все от ООП не выздоровели.
          Ответить
          • Если не использовать его как костыль, то очень многое подподает как раз под него..

            объекты, которые обмениваются сообщениями — это мы;)
            Ответить
            • А еще _иногда_ мы чистые функции, хотя бываем и с побочными эффектами.
              Часто мы конечные автоматы, причем недетерминированные, потому что из одного и того же настроения можем перейти в совсем разные.
              Часто у нас НАКАПЛИВАЕТСЯ, так что мы автоматы со стеком (или "с магазином"), и наконец у нас есть достаточно свободно адресумый мозг (хотя и не бесконечный, к сожалению), а значит мы -- машины тюринга.
              Ответить
              • С восстановлением, всегда можно поспать или там…
                Ответить
          • Функциональщекштоле? Что из ваших ваших новых прогрессивных концепций доступно в pure C?
            Ответить
            • >Функциональщекштоле?

              И это было сказано человеку, который здесь ГОДАМИ обсирал хацкелизм.

              >Что из ваших ваших новых прогрессивных концепций доступно в pure C?

              Да всё, если так разобраться. Просто все использовали эти «новые», «прогрессивные» концепции задолго до, даже не зная что насколько они новые и прогрессивные.

              Иммутабельность, итераторы (ленивые списки), указатели на функции — функцию можно передать как аргумент, итд.
              Ответить
              • > ГОДАМИ обсирал хацкелизм
                Бьёт - значит любит.
                Ответить
                • >Бьёт - значит любит

                  Безусловно. Это ж извечный конфликт, постулированный еще Ницше.
                  Чтобы что-то толково обсирать — нужно в нём как следует разобраться.
                  Ответить
                  • В обычном мире просто так обсирают. И только на ГК джентльмены живут по заветам Ницше.
                    Без шуток, часто удивляюсь, насколько хорошо Борманд знает PHP, а Сёма - Линукс. Иные заявляют о своих профессиональных талантах в данных областях с меньшими знаниями.
                    Ответить
                    • «Кто сражается с чудовищами, тому следует остерегаться, чтобы самому при этом не стать чудовищем.»

                      И ведь Тарас угодил в такую ловушку. Сперва он с легкостью стал уделывать плюсовиков в крестосрачах, а потом начал писать игры на С++.

                      >а Сёма - Линукс
                      Какой из джвух?
                      Ответить
                      • > игры на С++.

                        Он сделал это ради андроид маркета

                        Причём в мире андроид он со своим цпп остался в таком же меньшинстве как на десктопе с дельфи
                        Ответить
                      • >>а Сёма - Линукс
                        >Какой из джвух?
                        Всего джва линукса? Оригинальный, немецкий.

                        А тот, который Real, он не линукс, он JS ругает, тоже кстати неплохо разбираясь в теме разработки под веб-питушню.
                        Ответить
                        • Я ругаю только пятую версию, es2015 ok
                          Ответить
                          • У Вас настолько всё по полочкам разложено, что даже зона хейтерства строго очерчена. Похвально.
                            Ответить
                          • Если бы еще асинхронный http клиент был, чтобы совсем от коллбеков отказаться.
                            Ответить
                            • Так завезли-же в Es7

                              на вот, подрочи
                              sync function asyncCall() {
                                console.log('calling');
                                var result = await resolveAfter2Seconds();
                                console.log(result);
                                // expected output: "resolved"
                              }
                              Ответить
              • Да в курсе что хорошо зная язык можно писать в любом стиле, вопрос в том сколько каменных молотков надо смастерить чтоб таки построить космический корабль. Может все таки имеет смысл использовать языки где это все есть уже из "коробки"?
                Ответить

    Добавить комментарий