Published July 10, 2026 | Version v0.46.0

TuringLang/Turing.jl: v0.46.0

  • 1. University of Cambridge
  • 2. @letta-ai
  • 3. @PumasAI
  • 4. Aalto University
  • 5. @TuringLang
  • 6. University of British Columbia
  • 7. None
  • 8. King's College London
  • 9. @nestauk @dssg @turinglang @knowlab @BHFDSC
  • 10. UCL
  • 11. Harmonic
  • 12. Fowler College of Business, SDSU
  • 13. University of Pennsylvania
  • 14. Beacon Biosignals
  • 15. Universidad Autonoma de Madrid

Description

Turing v0.46.0

Diff since v0.45.0

Breaking changes

DynamicPPL 0.42

Turing.jl v0.46 brings with it all the underlying changes in DynamicPPL 0.42. Most notably, gradient preparation and evaluation now go through AbstractPPL's prepare / value_and_gradient!! interface. This is an internal change and does not affect sampling results. Please see the DynamicPPL changelog for full details, and the AdvancedVI section below for the user-facing changes in this release.

AdvancedVI 0.7

Turing.jl v0.46 also brings in the changes in AdvancedVI 0.7. Please see the AdvancedVI changelog for full details; the changes most pertinent to users of vi are:

  • AutoReverseDiff(; compile=true) is no longer supported for VI, and is rejected with an ArgumentError, as compiled tapes can silently produce incorrect gradients when reused across optimisation steps. Use AutoReverseDiff(; compile=false), or a different reverse-mode backend such as AutoMooncake(), instead.
  • vi with KLMinScoreGradDescent now optimises in unconstrained (linked) space, making it consistent with the other KLMin... algorithms. If you use it with a model that has constrained parameters, results may differ slightly from previous releases.

Other changes

DifferentiationInterface removed as a direct dependency

informationmatrix (and hence vcov) now computes its Hessian through AbstractPPL's second-order interface instead of DifferentiationInterface. There is no change in behaviour for users.

Performance of nested submodels

DynamicPPL 0.42.1 fixes a type-inference failure that made nested submodels (a x ~ to_submodel(...) statement inside a model that is itself used as a submodel) many times slower to evaluate and differentiate; see https://github.com/TuringLang/Turing.jl/issues/2844.

MCMCChains extension fix

Turing v0.45.0 was accidentally released without declaring the TuringMCMCChainsExt package extension, meaning that the extension did not load when MCMCChains was imported. This broke some MCMCChains-specific functionality, such as loadstate (for resuming sampling from a previous chain) and the post-sampling divergence warnings for Hamiltonian samplers; this is now fixed.

Merged pull requests:

  • CompatHelper: add new compat entry for MCMCChains at version 7 for package test, (keep existing compat) (#2824) (@github-actions[bot])
  • CompatHelper: bump compat for AbstractPPL to 0.15, (keep existing compat) (#2826) (@github-actions[bot])
  • CompatHelper: bump compat for AbstractPPL to 0.15 for package test, (keep existing compat) (#2827) (@github-actions[bot])
  • Update README.md (#2829) (@yebai)
  • CompatHelper: bump compat for Bijectors to 0.16, (keep existing compat) (#2830) (@github-actions[bot])
  • CompatHelper: bump compat for Bijectors to 0.16 for package test, (keep existing compat) (#2831) (@github-actions[bot])
  • CompatHelper: bump compat for DynamicPPL to 0.42, (keep existing compat) (#2832) (@github-actions[bot])
  • CompatHelper: bump compat for DynamicPPL to 0.42 for package test, (keep existing compat) (#2833) (@github-actions[bot])
  • CompatHelper: bump compat for StatsFuns to 2, (keep existing compat) (#2834) (@github-actions[bot])
  • CompatHelper: bump compat for StatsFuns to 2 for package test, (keep existing compat) (#2835) (@github-actions[bot])
  • CompatHelper: bump compat for OrderedCollections to 2, (keep existing compat) (#2836) (@github-actions[bot])
  • Replace CompatHelper with Dependabot (#2838) (@shravangoswami-bot)
  • Bump the all-github-actions-packages group with 4 updates (#2839) (@dependabot[bot])
  • Bump codecov/codecov-action from 6 to 7 in the all-github-actions-packages group across 1 directory (#2841) (@dependabot[bot])
  • skip codecov upload on Dependabot PRs (#2843) (@shravangoswami-bot)
  • Bump actions/checkout from 6 to 7 in the all-github-actions-packages group (#2845) (@dependabot[bot])
  • Release 0.46.0 (#2846) (@shravanngoswamii)

Closed issues:

  • Add support for CategoricalArrays as inputs into a model (#1815)
  • Some useful additions to documentations (#1829)
  • Feature request: Automatically handle errors by rejecting proposal (#1891)
  • Expose all DynamicHMC configuration options in DynamicNUTS (#1938)
  • Missing RJMCMC (reversible-jump) sampler (#2023)
  • How to interface with Turing.jl @model definitions? (#2138)
  • Wishart priors resulting in PosDefException: matrix is not positive definite; Cholesky factorization failed (#2188)
  • Problem with using predict with vector valued random variables (#2239)
  • Constrained or partitioned inference for Turing models. (#2249)
  • Distributions defined in Turing: is the plan to keep them here? (#2298)
  • Interface for specifying adjoints of FEM models (#2303)
  • PDMat error when sampling from prior of model with LKJCholesky (#2316)
  • Replace @inferred tests with Jet (#2319)
  • Use AllocCheck.jl in tests (#2320)
  • Systematically dealing with TODOs (#2362)
  • Tutorial on Turing.jl and performance (#2415)
  • Gibbs doesn't work with NUTS (#2520)
  • Implement quantile(model(), u)? (#2525)
  • Online sampling for state-space models (#2531)
  • Support for point processes? (#2594)
  • Can we improve TTFX with precompilation? (#2646)
  • Stop re-exporting all of Distributions (#2682)
  • Command-line interface to Turing (#2737)
  • Version detection (#2741)
  • Add support for Parallel across the sequence MCMC algorithms (#2823)
  • Nested submodels slow down sampling (#2844)

Files

TuringLang/Turing.jl-v0.46.0.zip

Files (187.4 kB)

Name Size Download all
md5:1c0fe6a5f77bfeee86a49de81df46975
187.4 kB Preview Download

Additional details

Related works