# Ephemeral: regenerable via setup.sh
tools/
.cache/

# Claude Code tool state
.claude/

# Build artifacts — regenerable from source via runtime/build.sh,
# demos/build.sh, demos/buildGno.sh, compare/regen.sh, etc.  These
# extensions are never source in this tree: compiled objects, flat
# binaries, OMF images, linker maps, and reloc sidecars.  Hand-written
# assembly (runtime/src/*.s, src/llvm/test/**/*.s) keeps the .s extension
# and stays tracked, so *.s is deliberately NOT ignored.
*.o
*.o.bak
*.o.tmp
*.bin
*.omf
*.map
*.reloc

# Exception: demo .rsrc/ fixture directories ship TYPECODE_ID.bin files
# as source.  Each rsrcBundle test reads them at build time and emits
# the AppleSingle + sidecar in the same dir; the .apl + sidecar are
# build artifacts (caught by *.bin above for the sidecar; .apl is
# tracked by name).  We carve out the source fixtures here.
!demos/*.rsrc/*.bin

# Per-target build directories.
tests/coremark/build/
tests/lua/build/
tests/ubsan/build/

# Runtime object manifest — regenerated by runtime/build.sh.  Consumed
# by CMake as the single source of truth for the runtime .o list.
runtime/.runtime-imports.list

# compare/ regenerables (compare/regen.sh): our backend asm output and
# the Calypsi reference listings.  Scoped so they can't catch source .s.
compare/*.ours.s
compare/*.calypsi.lst

# Stray Calypsi-generated asm at the repo root (not hand-written source).
# Root-anchored so it can't catch a real source file elsewhere.
/bench_simple.s

# Editor / OS
*.swp
*.swo
.DS_Store
*~

stuff/
ROM Source Code.zip
