|
| 1 | +--- |
| 2 | +title: Turing.jl Newsletter 7 |
| 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-05-23 |
| 10 | +--- |
| 11 | + |
| 12 | +**MCMCChains@7** |
| 13 | + |
| 14 | +There's a new major version of [MCMCChains.jl](https://github.com/TuringLang/MCMCChains.jl). |
| 15 | +From a user point of view, the main difference is that summary statistics and quantiles aren't automatically calculated by default (so, printing a `Chains` object in a REPL will only show the parameter names and sizes). |
| 16 | +To get the summary statistics and quantiles you will have to run `describe(chain)`. |
| 17 | +The main reason for this is because the summary stats would often take quite a while to compute — if you wish to preserve the old behaviour you can stick to MCMCChains@6. |
| 18 | + |
| 19 | +**JuliaBUGS `@model`** |
| 20 | + |
| 21 | +[JuliaBUGS.jl](https://github.com/TuringLang/JuliaBUGS.jl) recently implemented a `@model` macro which, in terms of its syntax, looks somewhat similar to Turing.jl's own macro, but under the hood constructs a BUGS model. |
| 22 | +Perhaps of interest is the way that parameters are initialised using `@parameters struct ... end`; this currently helps to initialise all parameter values to placeholders, and offers an alternative to explicitly specifying this with NamedTuples or arrays. |
| 23 | +This hasn't yet been released but for more information and a demonstration, there's [a documentation page](https://github.com/TuringLang/JuliaBUGS.jl/blob/main/docs/src/julia_syntax.md) that describes the design of this macro. |
| 24 | +The existing `@bugs` macro will still be retained. |
| 25 | + |
| 26 | +**Libtask** |
| 27 | + |
| 28 | +[Libtask.jl](https://github.com/TuringLang/Libtask.jl), the library that Turing’s particle Gibbs sampler is built on, was recently rewritten for its core parts by Will Tebbutt ([#179](https://github.com/TuringLang/Libtask.jl/pull/179). |
| 29 | +Libtask implements copyable, resumable tasks (coroutines) in pure Julia, and the new version is much faster and better documented. |
| 30 | +The new implementation is based on source code transformations, using tools and techniques from [Mooncake.jl](https://github.com/chalk-lab/Mooncake.jl). |
| 31 | +[Work](https://github.com/TuringLang/AdvancedPS.jl/pull/114) is ongoing to adapt AdvancedPS.jl to work with the new Libtask version, and once that is done we should expect a performance boost for Turing’s particle Gibbs sampler. |
| 32 | +We’ll let you know once that’s out. |
0 commit comments