Skip to content
 

Stan 2.11 Good, Stan 2.10 Bad

Stan 2.11 is available for all interfaces

We are happy to announce that all of the interfaces have been updated to Stan 2.11. There was a subtle bug introduced in 2.10 where a probabilistic acceptance condition was being checked twice. Sorry about that and thanks for your patience. We’ve added some additional tests to catch this kind of thing going forward.

As usual, instructions on downloading all of the interfaces are linked from:

The bug was introduced in 2.10, so 2.9 (pre language syntax enhancements) should still be OK.

There are also a couple bonus bug fixes: printing now works if the current iteration is rejected, and rejecting integer division by zero rather than crashing.

Thanks to everyone who helped make this happen

We found the bug due to a reproducible example posted to our user list by Yannick Jadoul. Thanks!

Thanks to Joshua Pritikin, who updated OpenMX (a structural equation modeling package that uses Stan’s automatic differentiation), so that the CRAN release could go through.

Thanks also to Michael Betancourt, Daniel Lee, Allen Riddell, and Ben Goodrich of the Stan dev team for stepping up to fix Stan itself and get the PyStan and RStan interfaces out ASAP.

What’s next?

We’re aiming to release minor versions at most quarterly. Here’s what should be in the next release (2.12):

  • substantial speed improvements to our matrix arithmetic
  • compound declare and define statements
  • elementwise versions of all unary functions for arrays, vectors, and matrices
  • command refactor (mostly under the hood, but will make new command functionality much easier)
  • explicit control of proportionality (dropping constants) in probability mass and density functions in the language
  • vector-based lower- and upper-bounds constraints for variables

After the next release, we’ll bring the example model code up to our current recommendations on priors and our current recommendations on Stan programming. Then, after the command refactor, the way will be clear for the Stan 3 versions of our interfaces, where we’ll be making all of our interfaces consistent and giving them more fine-grained control. Stay tuned!

8 Comments

  1. David J. Harris says:

    >There are also a couple bonus bug fixes: printing now works if the current iteration is rejected, and rejecting integer division by zero rather than crashing.

    Yay! Also very excited for the 2.12 features you mentioned, especially 1, 2, 3 and 6. Thanks all of you for your hard work.

  2. John Hall says:

    These posts could probably benefit from a link to the release page so that you can see the full change log.

    https://github.com/stan-dev/stan/releases/tag/v2.11.0

    • There are really three relevant change logs: interface (RStan, PyStan, CmdStan [others follow CmdStan]), Stan itself, and the math library. We had been summarizing updates, but I’ve been lazy because I’m off on personal leave until next week and only lightly following all the traffic.

  3. Rahul says:

    How come 2.10 came 7 months after 2.9 but 2.11 came in just one month. Sorry, couldn’t resist asking.

    • Carlos Ungil says:

      Because of the aforementioned bug, I’d guess. This release contains only bug fixes.

    • We don’t have a fixed schedule for releases, we just don’t want to flood them out one feature at a time to cut down on the installation headaches for users.

      2.10 involved some major rewrites of samplers, ODE solvers, and language. Michael changed the slice sampler in NUTS to a multinomial sampler, which seems to be more robust during warmup and is easier to generalize. Sebastian, Michael and Daniel figured out how to add stiff solvers from CVODES for ODEs. I updated the language to = for assignment and changed the function names for density/mass functions and (C)CDFs.

      2.11 was mainly a bug fix release. There were some new features in stan-dev/math, but those aren’t visible through Stan. I’d have numbered it 2.10.1 rather than 2.11.0 following our semantic versioning scheme; I have been out of the loop for personal reasons for the past month or so. But we’re also trying to advance numbers on higher modules (interface over Stan over math lib) to keep everything in synch; versioning isn’t exactly a precise science!

      • Andrew says:

        Bob:

        No installation headaches for this user! The CRAN setup on R works perfectly for me.

        Two other reasons we wouldn’t want to do new releases too frequently:

        1. I think CRAN has a limit on how often packages can be updated? So we don’t want to get ahead of that.

        2. It will get confusing on the users list if people are asking about all sorts of different versions, and we’re answering one question about version 2.11.4 and then something else regarding version 2.12.8 or whatever. It’s easier when working with the Stan community to have a single current version that everyone’s using.

Leave a Reply