|
| 1 | +--- |
| 2 | +title: Turing.jl Newsletter 16 |
| 3 | +description: The fortnightly newsletter for the Turing.jl probabilistic programming language |
| 4 | +categories: |
| 5 | + - Newsletter |
| 6 | +author: |
| 7 | + - name: The TuringLang team |
| 8 | + url: /team/ |
| 9 | +date: 2025-12-05 |
| 10 | +--- |
| 11 | + |
| 12 | +It's been a while since the last one; things have been brewing in the background... This newsletter will be the last for 2025; normal service will resume in January. We'd like to wish all of you a happy holiday season! |
| 13 | + |
| 14 | +**Turing v0.42** |
| 15 | + |
| 16 | +A new version of Turing was released yesterday — there is no way we can do justice to the changes in one paragraph so please check out [the changelog](https://github.com/TuringLang/Turing.jl/releases/tag/v0.42.0) for full details. Of note are: |
| 17 | + |
| 18 | +- Threadsafe evaluation is now opt-in, if you have tilde-statements inside threaded blocks you must now write `model = setthreadsafe(model, true)`. |
| 19 | + Confused? |
| 20 | + Don't worry, there's a [new docs page](https://turinglang.org/docs/usage/threadsafe-evaluation/) that fully explains when and why you need this (and when you don't) |
| 21 | +- Changes in DynamicPPL should mean that lots of things are now faster, mostly HMC/NUTS, Prior, and `returned` / `predict`. |
| 22 | + (Personally we also really recommend [trying FlexiChains](https://github.com/penelopeysm/FlexiChains.jl) if performance with chains is an issue and your model has lots of vector parameters; there are a growing number of issues on Turing/DynamicPPL where half of the solution is to use FlexiChains) |
| 23 | +- MCMCChains now stores the log-joint as `chn[:logjoint]` rather than `chn[:lp]` — the latter was really a remnant carried over from the times when Turing didn't track prior and likelihood separately |
| 24 | +- The VI interface has been changed a fair bit but in return you now have access to a whole host of new VI algorithms including natural gradient VI, batch-and-match, and Wasserstein |
| 25 | +- Implementing external samplers for Turing should now be much easier, you should only need to depend on AbstractMCMC and not Turing (see the [external sampler docstring](https://turinglang.org/Turing.jl/stable/api/Inference/#Turing.Inference.ExternalSampler) and [docs page](https://turinglang.org/docs/developers/inference/implementing-samplers/) for examples) |
| 26 | +- GibbsConditional is back after a long hiatus: the interface is slightly different to before, please see [the docstring](https://turinglang.org/Turing.jl/stable/api/Inference/#Turing.Inference.GibbsConditional) for usage examples! |
| 27 | + |
| 28 | +**Docs** |
| 29 | + |
| 30 | +Apart from the [threadsafe evaluation](https://turinglang.org/docs/usage/threadsafe-evaluation/) page we also did a refresh of Bijectors.jl's docs including a new page with some examples of [how to define your own bijector](https://turinglang.org/Bijectors.jl/stable/defining_examples/). |
| 31 | +And on top of that, on the main TuringLang docs page there are also new shiny links that let you download each docs page as a notebook, or open it as a notebook in Google Colab. |
| 32 | +Look out for the links in the right sidebar of the page! |
| 33 | + |
| 34 | +**DoodleBUGS** |
| 35 | + |
| 36 | +Now has a refreshed and much slicker UI: check it out @ https://turinglang.org/JuliaBUGS.jl/DoodleBUGS/ |
0 commit comments