Files
Sprinter-SDCC/docs/size_baseline.tsv
T
snark13 9f8aa6fc28 libc: две версии библиотеки — sprinter.lib (fast) / sprinter_safe.lib
Симметрично libbgi (bgi256/bgi256_safe): fast = -DLIBC_NOCHECK,
дефолт sprinter-cc; safe линкуется по --safe (флаг уже существовал).

Под LIBC_NOCHECK вырезаны ТОЛЬКО параметр-валидации:
- fgetc/fputc: NULL-check в горячей asm-обёртке (~11Т на каждый байт);
- fgets/fputs/fread/fwrite: NULL ptr/fp и EBADF на неверное направление
  потока; ftell/fseek/ungetc/fclose: NULL fp; cputs: NULL s.
НЕ тронуты: критичный _fd_guard (9-й OPEN вешает DSS — в обеих
версиях), функциональная маршрутизация (консоль/направление/hold),
cold-path валидации (fopen/cbl_open/irq/settextmode — экономии ноль).

libc/Makefile — dual-build по образцу libbgi (build/fast + build/safe,
общий стейл-контроль).  Корневой Makefile: в TESTS добавлены bgitest,
bgi_img, accfill, cblstream — раньше не собирались корневым make и
выпадали из size-check при чистой пересборке.

Дельты fast vs старая (safe-семантика): filetest -481, fbench -384,
solidt -180, errno -71, остальные -3..-9; роста нет.  Проверено в MAME:
filetest fast и safe (--safe, sprinter_safe.lib) — прогоны идентичны.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 22:11:01 +03:00

703 B

1# Эталон размеров _CODE (байт); обновление: python3 toolchain/size_check.py --update
2accfill3963
3argv3431
4assrtest3847
5attrprob4088
6banked1056
7bankedbg1067
8banklocl4832
9banktest3767
10bgi_img6572
11bgitest4053
12bios_text4460
13cat915
14cblstream6277
15cbltest6407
16cblwav6486
17conio4631
18conio23954
19dec_test860
20errno6145
21fbench8656
22fdmax6328
23filetest11143
24gets509
25gfx_dbuf5378
26gfx_demo4286
27hello4167
28hello24244
29irqtest5881
30ls4916
31malloc4462
32mdview19115
33mdview227033
34mem_test4558
35mouse4384
36openenv6127
37ptime5896
38rt_test4906
39seek4177
40simple960
41solidt12107
42stattest7700
43stdlib6643
44stest23644
45strtest1340
46text_palette5036
47timedir5471
48winrest4479