Help/example patch generation + cross-backend output verification & binding fixes#137
Merged
Merged
Conversation
This was referenced Jul 2, 2026
generate_patches (examples/Demos/GeneratePatches.cpp) emits per-object help/ example patches for Pd (-help.pd), Max (.maxhelp), Godot (.tscn), TouchDesigner (builder script) and Python, from the dump JSON. Wired into packaging with per-object overrides (HELP_PD/HELP_MAX/EXAMPLE_GODOT/EXAMPLE_TD/EXAMPLE_PY), falling back to the rich auto-generated patch. Includes the Pd help-text layout fix. See HELP_PATCH_GENERATION_PLAN.md.
1e725b3 to
3a64008
Compare
add_custom_target(... DEPENDS <target>) does not reliably force build ordering (VS generator + parallel MSBuild): the _help step could run generate_patches before the tool or the dump JSON existed, failing with exit code 3. Force it with an explicit add_dependencies on both generate_patches and the source (dump-producing) target, and invoke the tool via $<TARGET_FILE:...>. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011s7huWR2wFsLFiMJPjx1z2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Combines all the outstanding work into one PR (supersedes #126, #130, #131, #132, #133, #134, #135, #136). #127/#128/#129 already merged.
1. Help / example patch generation (the original goal) — #126
A JSON-dump-driven
generate_patches <backend> <dump.json> <out> [hint]tool (examples/Demos/GeneratePatches.cpp) with per-backend emitters, wired into the build + packaging so every object gets a help/example patch, overridable per-object (HELP_PD/HELP_MAX/EXAMPLE_GODOT/EXAMPLE_TD/EXAMPLE_PY):-help.pd, Max.maxhelp, Godot.tscn, TouchDesigner builder script, Python example..toxsynthesis deferred.2. Output-verification infrastructure — #133, #134 (incl. #131)
include/avnd/binding/golden/,cmake/avendish.golden.cmake): runs each object offline through the same wrappers the bindings use, feeds deterministic input, writesgolden/<c_name>.json(inputs+outputs) — the oracle. 109/110 objects produce output.tooling/td/): unattended sweep — stages plugins, drives a.toe, auto-dismisses dialogs, feeds golden inputs, captures outputs, diffs against the oracle. Crash-resilient (relaunches past a crasher).3. Binding fixes found by the sweeps + differential
vb.fourses~).getGeneralInfo) and impulse buttons fired every cook instead of on click.Differential result on TD: 51/109 objects match the raw-C++ oracle; remaining diffs are documented harness/golden-model limits (unnamed ports, multi-bus layout, uninitialised-golden, generator sample-count), not binding bugs.
Merges cleanly (one trivial
avendish.cmakeinclude-line conflict, resolved);cmakeconfigures.🤖 Generated with Claude Code