McRogueFace/docs
John McCardle 03c9b9ff58 Add profiling build target + native profiler workflow; closes #345
The default Release build (-O3 -DNDEBUG) omits frame pointers and ships no
DWARF, so it can't be line-annotated or unwound; build-debug (-O0) profiles
unoptimized code. Add a dedicated profiling variant for C++ hot-path work
(validating #331/#342/#343/#344).

- CMakeLists.txt: MCRF_PROFILE option adds -fno-omit-frame-pointer on top of
  RelWithDebInfo (-O2 -g). Binary not stripped. Post-build lib/assets/scripts
  copy already keys on the mcrogueface target, so build-profile/ self-populates.
- Makefile: `make profile` (-> build-profile/), `make callgrind SCRIPT=...`
  (one-shot Callgrind on a headless benchmark), `make clean-profile` (wired
  into clean-all).
- docs/profiling.md: full Callgrind + perf workflow, incl. the one-time
  `sudo sysctl kernel.perf_event_paranoid=1` perf needs on this box.
- Pointers from the Makefile header and CLAUDE.md build section.

Verified: DWARF sections present, frame-pointer prologues emitted, headless
smoke test passes, Callgrind yields source line + call-count attribution, and
perf --call-graph fp resolves engine symbols.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-10 18:59:39 -04:00
..
cookbook Cookbook: draft docs 2026-01-13 19:42:37 -05:00
stubs Fix #161: Update Grid, GridPoint, GridPointState stubs to match current API 2026-01-21 21:47:26 -05:00
templates draft tutorial revisions 2026-01-03 11:01:10 -05:00
tutorials Update all 13 tutorial scripts to current enum-based API, refs #167 2026-04-09 23:23:35 -04:00
api-audit-2026-04.md F15: correct docstring accuracy from adversarial verify pass (#314) 2026-06-21 06:43:47 -04:00
api-stability.md Freeze value semantics + record 1.0 compatibility policy 2026-07-02 20:23:11 -04:00
api_reference_complete.html docs: Add complete API reference documentation 2025-10-23 13:19:36 -04:00
API_REFERENCE_COMPLETE.md Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
api_reference_dynamic.html Regenerate API docs; add threading note to reference intro 2026-07-02 20:23:28 -04:00
API_REFERENCE_DYNAMIC.md Regenerate API docs; add threading note to reference intro 2026-07-02 20:23:28 -04:00
EMSCRIPTEN_RESEARCH.md First successful Emscripten/WASM build for #158 2026-01-31 00:34:11 -05:00
ISSUE_TRIAGE_2026-04.md Fix outdated CLAUDE.md WASM audio entry; update triage notes 2026-04-20 14:37:48 -04:00
mcrfpy.3 Regenerate API docs; add threading note to reference intro 2026-07-02 20:23:28 -04:00
PROCEDURAL_GENERATION_SPEC.md HeightMap: core class with scalar operations (closes #193) 2026-01-11 20:07:55 -05:00
profiling.md Add profiling build target + native profiler workflow; closes #345 2026-07-10 18:59:39 -04:00
threading-model.md Document threading contract; mcrfpy.lock() is the off-main-thread rule 2026-07-02 20:23:05 -04:00
WASM_TROUBLESHOOTING.md Add WASM developer troubleshooting guide, closes #240 2026-04-10 03:31:43 -04:00