diff --git a/Makefile b/Makefile index bae24ab..f08ac14 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,14 @@ # Sprinter C Compiler — top-level Makefile # -# make build host tools, libc archive, all tests, all apps +# make build host tools, libc archive, all tests # make tools build only host tools (mkexe) # make lib build lib/sprinter.lib (libc) + lib/bgi256.lib (libbgi) # make tests build all libc feature tests under tests/ -# make examples build all real applications under examples/ +# make examples build all real applications under examples/ (НЕ входит +# в `make all`: это регрессная сборка, а examples/ — +# крупные приложения, которые её только замедляют +# (mdview компилируется минутами) и ничего нового про +# libc не показывают. Собирать явно перед `make floppy`.) # make floppy package every .exe + test fixtures into mame/v306/IMG/mc.img # make check run mkexe unit tests # make clean remove all build artefacts @@ -41,7 +45,7 @@ DATA_FILES := \ .PHONY: all tools lib tests examples check clean sdcc floppy \ size-check size-baseline host-tests $(TESTS) $(APPS) -all: tools lib tests examples +all: tools lib tests tools: $(MAKE) -C toolchain/mkexe diff --git a/docs/size_baseline.tsv b/docs/size_baseline.tsv index 7c0d766..65c4e7b 100644 --- a/docs/size_baseline.tsv +++ b/docs/size_baseline.tsv @@ -4,7 +4,6 @@ argv 3431 assrtest 3847 atlas 9193 attrprob 4087 -balls 6031 banked 1056 bankedbg 1067 banklocl 4683 @@ -15,9 +14,9 @@ bios_text 4461 blitperf 5860 blitw 4939 cat 913 -cblstream 6431 -cbltest 6580 -cblwav 6648 +cblstream 6464 +cbltest 6613 +cblwav 6681 conio 4605 conio2 3929 dec_test 860 @@ -27,30 +26,25 @@ fdmax 6023 filetest 10547 fpsdiv 4870 gets 509 -gfx_dbuf 5112 +gfx_dbuf 5134 gfx_demo 4117 gfxbanks 6044 hello 4167 hello2 4244 -irqtest 6647 +irqtest 6680 +kbdpoll 1219 kbdraw 4911 ls 4835 malloc 4461 -mdview 18878 -mdview2 27031 mem_test 4555 mouse 4382 openenv 6124 palfile 5406 ptime 5744 -rpgprof 12082 -rpgwalk 10309 -rt_test 5154 -scroll 2974 +rt_test 5187 seek 4188 simple 955 solidt 11531 -space 11272 spranim 9431 spriteclip 4119 sprites 6791 diff --git a/toolchain/size_check.py b/toolchain/size_check.py index 9b9cee7..3316bb1 100644 --- a/toolchain/size_check.py +++ b/toolchain/size_check.py @@ -1,17 +1,23 @@ #!/usr/bin/env python3 """ -size_check.py — размерный регресс-тест: сравнение _CODE всех тестов и -приложений с эталоном docs/size_baseline.tsv. +size_check.py — размерный регресс-тест: сравнение _CODE тестов с эталоном +docs/size_baseline.tsv. Использование: python3 toolchain/size_check.py # сверка с эталоном python3 toolchain/size_check.py --update # перезаписать эталон -Логика: собираем _CODE из .map каждой программы (tests/*, examples/*), -сравниваем с эталоном. Любое отличие печатается; выход 1 — если есть -РОСТ (случайное разжирение libc), 0 — если только уменьшения/без -изменений. Новые программы (нет в эталоне) — предупреждение, добавить -через --update. Запускать после `make all`. +Логика: собираем _CODE из .map каждой программы под tests/, сравниваем с +эталоном. Любое отличие печатается; выход 1 — если есть РОСТ (случайное +разжирение libc), 0 — если только уменьшения/без изменений. Новые +программы (нет в эталоне) — предупреждение, добавить через --update. +Запускать после `make all`. + +ТОЛЬКО tests/, без examples/: регресс ловит разжирение libc, а для этого +хватает мелких тестов — каждый тянет свой кусок библиотеки и пересобирается +за секунды. Крупные приложения (examples/mdview компилируется минутами) +не показывают ничего сверх этого и лишь удлиняют цикл, поэтому и из +`make all` они убраны (см. корневой Makefile). """ import glob @@ -28,7 +34,6 @@ def collect(): sizes = {} pats = [ os.path.join(ROOT, "tests", "*", ".sprinter-cc-*", "*.map"), - os.path.join(ROOT, "examples", "*", ".sprinter-cc-*", "*.map"), ] for pat in pats: for map_path in glob.glob(pat):