Stop committing assembled programs, nine of which had gone stale
Thirteen build artifacts were tracked: ten .bin files, a disk image, and the text file that had been put on it. Every one is produced by 'make' in Programs/ from a source file that is also tracked. NINE OF THE TEN BINARIES DISAGREED WITH THEIR OWN SOURCE, including Programs/CosmOS/Bin/cosmos.bin - the operating system. Only hello.bin still matched, and that by accident. That is worse than shipping no binary at all. A repository holding both a source file and a stale build of it has two answers to what a program does, and the wrong one is the one that runs. Somebody reads the source, runs the binary, and sees behaviour that is not in the code with nothing to tell them why. Nothing referenced any of them - not the makefiles, not the tests, not the manuals. Checked before removing, and checked after: the suite passes, and a clean clone with all of them gone builds both tools and assembles every program from source alone. .gitignore now covers *.bin, *.sbx and *.img, unanchored, because a build output may appear anywhere a source file lives. Programs/CosmOS/Bin/ held cosmos.bin, disk.img and a 17 byte hello.txt that existed only to be put on that image. It was a snapshot of a demo from before Tests/makedisks.sh built its own fixtures, and it goes with them. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E2JrLzFvuFX9fgi1LDRjrW
This commit is contained in:
co-authored by
Claude Opus 5
parent
fb335681d2
commit
6dbb38b209
+10
@@ -13,3 +13,13 @@
|
||||
|
||||
# Python leaves these beside the test scripts.
|
||||
__pycache__/
|
||||
|
||||
# Assembled programs. Every one of these is built by 'make' in Programs/ from a source
|
||||
# file that is tracked, so committing them only creates a second answer to the question of
|
||||
# what a program does - and the second answer goes stale silently. Nine of the ten that
|
||||
# used to be here disagreed with their own source, including the operating system.
|
||||
#
|
||||
# Not anchored, because a .bin may be built anywhere a .asm lives.
|
||||
*.bin
|
||||
*.sbx
|
||||
*.img
|
||||
|
||||
Reference in New Issue
Block a user