1. Список говнокодов пользователя j123123

    Всего: 331

  2. JavaScript / Говнокод #23111

    +1

    1. 1
    2. 2
    var x = '$$>1 ? eval(x.replace(/\\$\\$/g, $$-1)) + eval(x.replace(/\\$\\$/g, $$-2)) : 1';
    eval(x.replace(/\$\$/g, 5))

    Yo dawg, I heard you like evaluation. So I put evaluation in your evaluation so you could evaluate while you evaluate
    Фибоначчи, по мотивам http://govnokod.ru/20105#comment330201 хуйни

    j123123, 06 Июня 2017

    Комментарии (13)
  3. Си / Говнокод #23080

    +2

    1. 1
    2. 2
    3. 3
    for(i==1;i<=1000;i++)
    
    https://youtu.be/Tzl0ELY_TiM?t=89

    И эти люди хотят кого-то учить программированию?

    j123123, 30 Мая 2017

    Комментарии (70)
  4. Си / Говнокод #23073

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    for(uint64_t i = 0ULL; i <= 999999999ULL; i+= 1)
    {
        long double a =  0.00005l * i; // это чтоб в плавучке не накапливались ошибки.
        somefunction(a);
        ....
    }

    j123123, 26 Мая 2017

    Комментарии (11)
  5. PHP / Говнокод #23051

    0

    1. 1
    https://web.archive.org/web/20070125181458/http://2ch.ru/s/src/1158095011998.gif

    j123123, 21 Мая 2017

    Комментарии (0)
  6. Assembler / Говнокод #23014

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    #define SPLICE(a,b) SPLICE_1(a,b)
    #define SPLICE_1(a,b) SPLICE_2(a,b)
    #define SPLICE_2(a,b) a##b
    #define LL(a,b) SPLICE_2(a,b)
    #define L(a) LL(a,LOC)
    
    
    #define LOC sub1
    .func sub1
    sub1:
        ljmp L(L1)
    
    L(L1):
        nop
    .endfunc
    
    #define LOC sub2
    .func sub2
    sub2:
        ljmp L(L1)
    
    L(L1):
        nop
    .endfunc

    Когда захотел сделать local labels в ассемблере через сишный препроцессор

    j123123, 12 Мая 2017

    Комментарии (55)
  7. Си / Говнокод #22876

    −33

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    #include <http://govnokod.ru/21585>
    
    // assembly output for f1_signed and f2_signed on GCC 7,6,5 ... versions are same
    
    signed char f1_signed(signed char a1, signed char a2, signed char a3)
    {
      return MAXS(a1,a2,a3,a1,a2,a3);
    }
    
    signed char f2_signed(signed char a1, signed char a2, signed char a3)
    {
      return MAXS(a1,a2,a3);
    }
    
    // assembly output for f1_unsigned and f2_unsigned on GCC 7,6,5 ... versions are differend
    // GCC compiler can't do same simplification for unsigned function
    
    // This function produces much more assembler code than second
    unsigned char f1_unsigned(unsigned char a1, unsigned char a2, unsigned char a3)
    {
      return MAXS(a1,a2,a3,a1,a2,a3);
    }
    
    unsigned char f2_unsigned(unsigned char a1, unsigned char a2, unsigned char a3)
    {
      return MAXS(a1,a2,a3);
    }

    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80574

    Очередной мой багрепорт в GCC. Компилятор GCC может заоптимизировать повторяющуйся в MAXS хрень для signed char, но не может для unsigned
    А вот Clang не может заоптимизировать ни то, ни другое. https://godbolt.org/g/7Kt9X0

    j123123, 30 Апреля 2017

    Комментарии (100)
  8. Си / Говнокод #22875

    −11

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    void *memcpy(void *__dest, __const void *__src, size_t __n)
    {
            int i = 0;
            unsigned char *d = (unsigned char *)__dest, *s = (unsigned char *)__src;
    
            for (i = __n >> 3; i > 0; i--) {
                    *d++ = *s++;
                    *d++ = *s++;
                    *d++ = *s++;
                    *d++ = *s++;
                    *d++ = *s++;
                    *d++ = *s++;
                    *d++ = *s++;
                    *d++ = *s++;
            }
    
            if (__n & 1 << 2) {
                    *d++ = *s++;
                    *d++ = *s++;
                    *d++ = *s++;
                    *d++ = *s++;
            }
    
            if (__n & 1 << 1) {
                    *d++ = *s++;
                    *d++ = *s++;
            }
    
            if (__n & 1)
                    *d++ = *s++;
    
            return __dest;
    }

    Царский анролл в memcpy, прямиком из ядра Linux

    http://lxr.free-electrons.com/source/arch/arm/boot/compressed/string.c

    j123123, 30 Апреля 2017

    Комментарии (41)
  9. JavaScript / Говнокод #22860

    −11

    1. 1
    https://habrahabr.ru/post/322052/

    Лямбда-исчисление на JavaScript

    j123123, 27 Апреля 2017

    Комментарии (21)
  10. Си / Говнокод #22854

    −16

    1. 1
    https://foxford.ru/wiki/informatika/tipy-tselyh-chisel-yazyka-s

    Вот такая хуйня получается, когда учебные материалы по Си пишут те, которые сами нихуя не знают Си и не читали Священный Драфт Стандарта. Сколько хуйни по ссылке вы можете найти?
    spoiler: https://habrahabr.ru/post/156593/

    j123123, 26 Апреля 2017

    Комментарии (31)
  11. C++ / Говнокод #22815

    −11

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    #if HAVE(MERGESORT)
        if (isSortingPrimitiveValues)
            qsort(values.begin(), values.size(), sizeof(ValueStringPair), compareByStringPairForQSort);
        else
            mergesort(values.begin(), values.size(), sizeof(ValueStringPair), compareByStringPairForQSort);
    #else
        // FIXME: The qsort library function is likely to not be a stable sort.
        // ECMAScript-262 does not specify a stable sort, but in practice, browsers perform a stable sort.
        qsort(values.begin(), values.size(), sizeof(ValueStringPair), compareByStringPairForQSort);
    #endif

    Из какой-то древней версии Webkit. Про устойчивость сортировки. Ну типа вот хоть в ECMAScript-262 нихрена не написано про то, что сортировка должна быть устойчивой, мы сделаем ее устойчивой потому что так принято (а то сломаем еще ненароком чей-то говнокод на JS)

    вот еще
    https://bugs.chromium.org/p/v8/issues/detail?id=90
    https://habrahabr.ru/post/303748/

    j123123, 15 Апреля 2017

    Комментарии (15)