The fixed-baud window counted down a uint32 where almost every window fits 24 bits; the countdown now takes avr::uint24_t when the poll budget allows (the autobaud budget's own choice), uint32 past 16.7M polls — four bytes off every fixed-baud image on every chip, the full suites green on the changed window. The README size table is refreshed — its autobaud column had also gone stale by the no-assembly pass's measurement-loop win, which nothing gated: sizes.py check-readme now runs as the gate's final stage, where every tree is freshly built and the table can actually be held. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
46 lines
1.7 KiB
Bash
Executable File
46 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
||
# The port's gate: every chip's generated workflow — build, size matrix, and
|
||
# the simulator-driven protocol suites. --full adds the reflect-spot builds
|
||
# (libavr's rule: reflect compiles are bounded to its spot set, never the
|
||
# full matrix) and swaps the compact size matrix for the exhaustive
|
||
# clock × baud × backend cross product. libavr resolves from the `libavr/`
|
||
# submodule; LIBAVR_ROOT overrides it for a working tree.
|
||
set -e
|
||
cd "$(dirname "$0")/.."
|
||
|
||
full=0
|
||
[[ "$1" == "--full" ]] && { full=1; shift; export PUREBOOT_FULL_MATRIX=1; }
|
||
|
||
CHIPS=(attiny13 attiny13a attiny25 attiny45 attiny85
|
||
atmega8 atmega8a atmega16 atmega16a atmega32 atmega32a
|
||
atmega48 atmega48a atmega48p atmega48pa
|
||
atmega88 atmega88a atmega88p atmega88pa
|
||
atmega168 atmega168a atmega168p atmega168pa
|
||
atmega328 atmega328p
|
||
atmega164a atmega164p atmega164pa
|
||
atmega324a atmega324p atmega324pa
|
||
atmega644 atmega644a atmega644p atmega644pa
|
||
atmega1284 atmega1284p)
|
||
REFLECT_SPOT=(attiny13a attiny85 atmega8 atmega16a atmega32a atmega48pa
|
||
atmega88 atmega168pa atmega328p atmega164a atmega644p atmega1284)
|
||
|
||
for chip in "${CHIPS[@]}"; do
|
||
echo "==== $chip ===="
|
||
cmake --workflow --preset "$chip-generated" "$@"
|
||
done
|
||
|
||
if ((full)); then
|
||
for chip in "${REFLECT_SPOT[@]}"; do
|
||
echo "==== $chip reflect ===="
|
||
cmake --workflow --preset "$chip-reflect" "$@"
|
||
done
|
||
fi
|
||
|
||
# Every tree is freshly built now — the one moment the README's size table
|
||
# can be held to what the images measure (a per-preset ctest sees only its
|
||
# own chip; the table needs all of them, and ungated it drifts: a
|
||
# common-code shave moves every row at once with nothing over budget).
|
||
python3 tools/sizes.py check-readme
|
||
|
||
echo "check: every chip green"
|