Make FlexiChains the default chain type (?) #2743
Draft
+316
−298
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.
Mostly interested in seeing what breaks, I ran some tests offline then got bored.
As far as source code changes go, I only needed to change the definition of
DEFAULT_CHAIN_TYPEand twiddle with some imports. So in principle this is pretty much done.Most changes were really in the test suite, using
chn[@varname(x)]instead ofchn[:x]. In fact, that isn't even necessary, but I just consider it good practice.The only changes that I found to be mandatory were changing things like
chn[Symbol("m[1]")]tochn[@varname(m[1])], which is a Positive Change, and also other things that relied too heavily on the exact internal structure of MCMCChains, which is also a Positive Change, or a Neutral Change in the cases where I had to rely on the internal structure of FlexiChains.This PR should definitely target breaking, but that would cause version conflicts with FlexiChains, since FlexiChains has a compat entry that pins Turing to its current minor version. That can be fixed by moving FlexiChainsTuringExt into Turing proper, so that that compat entry can be removed.