Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## traces #1501 +/- ##
==========================================
- Coverage 83.79% 82.55% -1.24%
==========================================
Files 53 51 -2
Lines 4590 4889 +299
==========================================
+ Hits 3846 4036 +190
- Misses 744 853 +109 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
🟡 Changes recommended
The no-prefix submodel path can silently ignore an argument binding, and the documented context access emits an internal-variable warning.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Unifies model arguments, conditioned values, and fixed values as role-tagged model bindings, replacing CondFixContext and missing-based latent selection.
Changes:
- Implements binding precedence, partial overrides, deconditioning, and unfixing.
- Updates compiler, prefix, submodel, and
VarNamedTuplehandling. - Migrates extensions, documentation, and regression tests.
File summaries
| File | Description |
|---|---|
HISTORY.md |
Documents binding semantics. |
docs/src/api.md |
Updates prediction and context APIs. |
docs/src/conditionfix.md |
Documents explicit bindings. |
docs/src/evaluation.md |
Explains evaluation data flow. |
docs/src/onboarding.md |
Updates contributor guidance. |
docs/src/tilde.md |
Revises tilde lowering documentation. |
ext/DynamicPPLComponentArraysExt.jl |
Supports component-backed bindings. |
ext/DynamicPPLInputProvenanceExt.jl |
Traces model-bound inputs. |
ext/DynamicPPLMCMCChainsExt.jl |
Handles absent chain values. |
src/DynamicPPL.jl |
Removes obsolete includes. |
src/compiler.jl |
Generates role-aware model evaluation. |
src/contexts.jl |
Updates context examples. |
src/contexts/conditionfix.jl |
Removes CondFixContext. |
src/contexts/init.jl |
Rejects missing parameters. |
src/contexts/prefix.jl |
Adds prefix templates. |
src/debug_utils.jl |
Adapts model diagnostics. |
src/model.jl |
Implements unified model bindings. |
src/submodel.jl |
Merges parent and child bindings. |
src/subsample.jl |
Accepts argument observations. |
src/varname.jl |
Removes obsolete argument helpers. |
src/varnamedtuple.jl |
Adds nested templates. |
src/varnamedtuple/getset.jl |
Handles nested template indexing. |
src/varnamedtuple/partial_array.jl |
Adds indexed-value preparation. |
src/varnamedtuple/vnt.jl |
Refines lookup and documentation. |
test/compiler.jl |
Tests new lowering behavior. |
test/conditionfix.jl |
Expands binding regression coverage. |
test/context_implementations.jl |
Tests evaluation separation. |
test/contexts.jl |
Removes obsolete context tests. |
test/contexts/init.jl |
Tests missing-value rejection. |
test/debug_utils.jl |
Updates diagnostic tests. |
test/ext/DynamicPPLInputProvenanceExt.jl |
Tests bound-input provenance. |
test/model.jl |
Migrates model behavior tests. |
test/runtests.jl |
Removes deleted test suite. |
test/submodels.jl |
Tests nested binding behavior. |
test/subsample.jl |
Updates observation tests. |
test/utils.jl |
Revises transformation tests. |
test/varnamedtuple.jl |
Tests nested templates and equality. |
Review details
- Files reviewed: 37/37 changed files
- Comments generated: 2
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Assisted-by: Codex <codex@openai.com>
Assisted-by: Codex <codex@openai.com>
Assisted-by: Codex <codex@openai.com>
Benchmarks @ f7f79bfPerformance Ratio: gradient time divided by log-density time. For very small models these ratios are noisy across runs and machines; raw primal and gradient timings are more reliable. The benchmarks are aimed at DynamicPPL developers and mainly catch obvious allocation or type-stability regressions. See benchmark notes for details. Main @ 7a7da38EnvironmentJulia Version 1.13.0 Commit d1c37793dd2 (2026-09-09 19:00 UTC) Build Info: Official https://julialang.org release Platform Info: OS: Linux (x86_64-linux-gnu) CPU: 4 × AMD EPYC 7763 64-Core Processor WORD_SIZE: 64 LLVM: libLLVM-20.1.8 (ORCJIT, znver3) GC: Built with stock GC Threads: 1 default, 1 interactive, 1 GC (on 4 virtual cores) |
|
DynamicPPL.jl documentation for PR #1501 is available at: |
This replaces
CondFixContextwith model bindings that store each value together with its conditioned or fixed role. Later bindings replace earlier ones at the same address, and parent bindings override child bindings. For a model containingx ~ Normal(),condition(fix(m; x=1); x=2)observesx=2and includes its likelihood. Model arguments provide default observations;decondition(m, :x)makesxlatent.missingno longer marks latent sites. Submodel bindings address internal variables rather than return values.Closes #1012; closes #958; closes #1464; closes #1246.