# ---------------------------------------------------------------------------
# Chez Scheme
# ---------------------------------------------------------------------------
# Compiled libraries/programs from compile-file, compile-library,
# compile-program and compile-whole-program. Note: Chez emits `.so`
# regardless of platform, so the C section below shares this pattern.
*.wpo
*.boot
*.chez

# Chez REPL / debug leftovers
.chezhistory

# ---------------------------------------------------------------------------
# Akku (package manager)
# ---------------------------------------------------------------------------
# Installed dependencies and the activation environment.
# Akku.manifest and Akku.lock ARE tracked -- do not ignore them.
.akku/
akku/

# ---------------------------------------------------------------------------
# C / native shim
# ---------------------------------------------------------------------------
# Object files
*.o
*.obj
*.ko
*.lo
*.slo
*.elf

# Precompiled headers
*.gch
*.pch

# Shared libraries (also covers Chez's compiled `.so` output)
*.so
*.so.*
*.dylib
*.dll

# Static libraries / archives
*.a
*.la
*.lai
*.lib

# Executables
*.exe
*.out
# The clean-install CI job's probe writes probe.out and probe.err into the
# checkout root. *.out above already covers the first; .err has no rule, and
# a contributor re-running that step by hand would otherwise see it as
# untracked. CI itself runs in a throwaway container and never notices.
/probe.err
# Not a bare extension wildcard in practice: *.out above is meant for
# `cc -o a.out`-style output, but it also matches examples/expected/NN.out
# -- make examples's committed golden files -- silently dropping them from
# `git add`. Confirmed via `git check-ignore -v examples/expected/01.out`
# before this line existed. Same shape of bug as core.[0-9]* below, which
# core alone already hit against tests/fixtures/core.md (Task 8).
!examples/expected/*.out
*.app
*.i*86
*.x86_64
*.hex

# Debug info
*.dSYM/
*.su
*.idb
*.pdb
*.ilk
*.map

# ---------------------------------------------------------------------------
# Build systems and generated build trees
# ---------------------------------------------------------------------------
build/
dist/
out/
lib/native/

# CMake (cmark-gfm upstream builds with CMake)
CMakeCache.txt
CMakeFiles/
CMakeScripts/
cmake_install.cmake
CTestTestfile.cmake
Testing/
install_manifest.txt
_deps/

# Autotools
.deps/
.libs/
autom4te.cache/
config.log
config.status
configure~
Makefile.in

# Compilation database (generated by bear/cmake for LSP)
compile_commands.json
.cache/

# ---------------------------------------------------------------------------
# Testing, coverage, sanitizers, profiling
# ---------------------------------------------------------------------------
*.gcno
*.gcda
*.gcov
coverage/
*.lcov
*.profraw
*.profdata

# AddressSanitizer / LeakSanitizer / Valgrind output
*.asan
*.lsan
*.ubsan
asan.log*
lsan.log*
*.valgrind
vgcore.*
core
# PID-suffixed, not a bare extension wildcard: an unqualified `core.*` also
# matches tests/fixtures/core.md (Task 8), silently dropping it from `git
# add`. Real core dumps are core.<pid>, never core.<word>.
core.[0-9]*

# Local test scratch output
tests/output/
tests/tmp/

# ---------------------------------------------------------------------------
# Editors and tooling
# ---------------------------------------------------------------------------
# Emacs
*~
\#*\#
.\#*
TAGS

# Vim
*.swp
*.swo
*.swn
Session.vim
.netrwhist

# ctags / GNU global
tags
!tags/
GPATH
GRTAGS
GTAGS

# IDEs
.vscode/
.idea/
*.iml

# Direnv
.envrc.local
.direnv/

# ---------------------------------------------------------------------------
# OS cruft
# ---------------------------------------------------------------------------
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
Thumbs.db
ehthumbs.db
desktop.ini

# ---------------------------------------------------------------------------
# Local environment (12-factor: config lives in the environment, not the repo)
# ---------------------------------------------------------------------------
.env
.env.*
!.env.example
