Stan 2.11 Good, Stan 2.10 Bad

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:

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!

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.

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!

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.