сборка: гигиена (П5) — stale .rel, все тесты в make all, размерный регресс
- lib/Makefile: stale .rel удаляются сверкой списка модулей перед упаковкой; штамп build/.modules триггерит перелинковку при любом изменении состава исходников (при смене списка архив сносится — на exFAT гранулярность mtime грубая, сравнение времён ненадёжно) - top-level TESTS: все каталоги tests/ теперь собираются make all (43 программы; banktest переименован из banked.exe — конфликт имён с tests/banked); mdview2 добавлен в APPS - размерный регресс: toolchain/size_check.py сверяет _CODE всех программ с docs/size_baseline.tsv; make size-check / size-baseline - заголовки: контракт затенения SDCC задокументирован в docs/libc-headers.md; новый string.h (include_next + strlwr/strupr); из sprinter_compat.h убраны макросы min/max — конфликтовали с функциями из stdlib.h, и в Solid-C min/max тоже функции Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -71,9 +71,7 @@ typedef struct fpoint {
|
||||
/* movmem(src, dst, n) → memcpy(dst, src, n) — arg order swapped */
|
||||
#define movmem(s, d, n) memcpy((d), (s), (n))
|
||||
|
||||
/* In-place case conversion. */
|
||||
char *strlwr(char *s);
|
||||
char *strupr(char *s);
|
||||
/* strlwr/strupr объявлены в нашем <string.h> (include_next-цепочка). */
|
||||
|
||||
/* Solid-C calls perror's table 'strerr'. */
|
||||
#define strerr(n) strerror((n))
|
||||
@@ -81,12 +79,10 @@ char *strupr(char *s);
|
||||
/* ---- stdlib.h additions ------------------------------------------ */
|
||||
#define abort() _exit(0xFF)
|
||||
|
||||
#ifndef min
|
||||
#define min(a, b) ((a) < (b) ? (a) : (b))
|
||||
#endif
|
||||
#ifndef max
|
||||
#define max(a, b) ((a) > (b) ? (a) : (b))
|
||||
#endif
|
||||
/* min/max — ФУНКЦИИ из <stdlib.h> (libc/stdlib/min.c, max.c), как и в
|
||||
* Solid-C (STDLIB.H: `int min();`). Макро-версии здесь были удалены
|
||||
* 2026-07-06: макрос дважды вычисляет аргументы и ломает объявление
|
||||
* функции, встреченное после себя. */
|
||||
|
||||
/* div() and div_t come from SDCC's <stdlib.h> (already included above). */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user