LINUX.ORG.RU

Покритикуйте, пожалуйста, код

 ,


3

5

Написал свой первый hello world на nasm'е. Покритикуйте, пожалуйста.

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

https://github.com/codemeow/freelancer/blob/master/freelancer.asm

★★★★★

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

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

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

тем, что не надо под каждую платформу велосипедить.

Надо, правда не так сильно.

да и любой компилятор если и не сделает тебя по эффективности, то как минимум не отстанет

любой компилятор если и не сделает тебя по эффективности

Ну если уж совсем любой, то да. А так шансов нет.

я уже привёл пруф их эффективности.

Это не совсем пруф. Нету никаких гарантий, что оно не поломает описанную тобою последовательность операций до/после.

А так же то, что семантически нету атомик-данных - есть атомарные операции. Это является проблемой в данных абстракциях. Они не полноценны в отличии от компиляторных встроенных функций. Там уже правильная семантика и она куда шире.

anonymous
()

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

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

давай на простом примере:

static std::atomic<size_t> counter = 0;

void Count() {
    ++counter;
}

size_t GetCounter() {
    return counter.load(/*memory_order по вкусу*/);
}

что здесь можно улучшить ассемблером?

anonymous
()

Зашёл в тред, а тут царь визжит. Это просто праздник какой-то.

anonymous
()

Почему у царя такой баребух?

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

не умеешь программировать - иди укладывать плитку

Так иди, укладывай. Почему на ЛОРе срёшь?

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

царь хуйцов соснул

два раза

раз за криптографию

другой за атомарные переменные

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

Кстати, я задумываюсь над трехмерным программированием в виртуальной реальности.

Ты хоть одну поделку довел до ума?

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

хм. может это и есть царь? зачем иначе так тупо сливать тред?

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

всё те же неэффективные атомики. на то он и высокий уровень

Отличные истории:

std::atomic<int> i;
++i;
lock addl $1, -4(%rsp)

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

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

Кстати, я задумываюсь над трехмерным программированием в виртуальной реальности.

Зачем ограничиваться тремя измерениями? Пусть количество измерений будет настраиваемым, а то вот какой-нибудь говнокод может быть намного удобней в 20-мерном пространстве разбирать. И еще эта анскильная евклидова геометрия, надо делать неевклидову, как в hyperrogue.

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

говнокод может быть намного удобней в 20-мерном пространстве разбирать Вот щас взял и обосцал всю современную физику…

anonymous
()

Покритикуйте, пожалуйста.

А можно и так:

$ echo Hello, World!

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