Skip to content

Conversation

@clzll
Copy link
Contributor

@clzll clzll commented Mar 7, 2025

No description provided.

@clzll clzll closed this Mar 7, 2025
@clzll clzll force-pushed the feature/speedup_io branch from 1a86bb6 to a68fe11 Compare March 7, 2025 10:49
@clzll clzll reopened this Mar 7, 2025
@clzll clzll force-pushed the feature/speedup_io branch from a68fe11 to 36970ed Compare March 7, 2025 12:51
Copy link
Member

@dedlocc dedlocc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

как-то очень много тут диффа, не связанного с заголовком PR

этот дифф как минимум требует пояснения, а лучше вообще оставить только "Speed up I/O", остальное при желании подав отдельными PR-ами (к слову, оно даже не сочетается с #3)

@clzll clzll force-pushed the feature/speedup_io branch 2 times, most recently from 44a6377 to 0753da7 Compare March 9, 2025 06:59
@clzll clzll force-pushed the feature/speedup_io branch from 0753da7 to 81c5b7c Compare March 9, 2025 07:06
@clzll
Copy link
Contributor Author

clzll commented Mar 9, 2025

как-то очень много тут диффа, не связанного с заголовком PR

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

этот дифф как минимум требует пояснения

  1. Базовые функции ввода-вывода теперь буферизованы (подробности в комментариях в начале src/common.asm, в комментариях к самим функциям и на 564-566 строчках src/common.asm (т.е. в комментариях к stdin_meta/stdout_meta/stderr_meta))
  2. Функции для чтения/записи длинных чисел теперь делают это "кусками": длинные числа обновляются раз в 19 десятичных цифр.

@clzll
Copy link
Contributor Author

clzll commented Mar 9, 2025

Последний коммит нужен т.к. предыдущая версия ci-extra/check-asm-formatting.py считает вот такое форматирование ошибкой:

pow10_arr_reversed:
                dq              pow10_19, 0xde0b6b3a7640000, 0x16345785d8a0000, 0x2386f26fc10000, \
                                0x38d7ea4c68000, 0x5af3107a4000, 0x9184e72a000, 0xe8d4a51000, \
                                0x174876e800, 0x2540be400, 0x3b9aca00, 0x5f5e100, 0x989680, 0xf4240, \
                                0x186a0, 0x2710, 0x3e8, 0x64, 0xa, 0x1

@clzll clzll force-pushed the feature/speedup_io branch from 9962c30 to 837fe92 Compare April 30, 2025 10:12
Copy link
Member

@dedlocc dedlocc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Мы возьмём предложенные изменения на вооружение, и подумаем, какое их подмножество действительно будет полезно перенять для будущих лет. Пока что, как и предыдущий PR, оставлю открытым, чтобы не потерялся.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants