Release for Stan 2.18


StanCon is for showcasing Stan. There will be lots of people there who want to try out new things. Saying, “there is a branch that does X” is essentially equivalent to “most of you cannot do X yet but will be able to at some unspecified date”. Particularly when it comes to talks, people will not be able to run the examples easily if it requires something that hasn’t been released yet.

Plus there is a lot of open PRs currently and we will probably have MPI bugs and other bugs due to 2.18 being somewhat rushed once all the MPI branches were merged.


What if nothing new is merged before StanCon?


Then something has gone horribly wrong. But I was presuming there are going to be merges.


No objection from me.

My only ask: please verify that it works before releasing. By that, I mean:

  • CmdStan on Linux (without GPU / MPI and with a standard C++ compiler installed), on Mac with XCode, and on Windows with our current instruction set (I think it’s still RTools).


Actually, I need to amend my position. There are two bugs in the way Stan works now that should be fixed before release.

The second one is particularly gnarly cause it goes against expected behavior. (Ask for 1000 draws and it might execute, not report an error exit code, and generate less than 1000 draws.) I don’t know when it was introduced, but I’m pretty sure this wasn’t always the behavior.


A release very soon is great. I don’t think that we can find any more mpi bugs ourselves. The code needs more exposure by now in order to make any remaining issues visible …in case there are any left.

BTW, another major feauture is thread support. It’s too bad that the current rtools fails to deal with (wrong mingw), but in principle this enables within chain parallelization for all platforms. For windows one can make it work, but practically we will have to wait for the next big rtools upgrade.

I am really looking forward to this one!


GPU things relevant to release and our conversation tmrw:

We have four PRs left

  1. (under review) Basic Matrix Algebra (link)
  2. Matrix Multiplication (link)
  3. Lower Triangular Inverse (link)
  4. Cholesky Decomposition and it’s derivative (link)

It’s about 2500 lines in total so idt we’ll make 2.18 if it comes out in the next week or so :)
(Which is fine by me)


Looks like everyone just got bought some time by the two Stan bugs @syclik posted above as blockers for 2.18. Would love to see vectorized rngs :D


I’m OK with releasing again before StanCon, and in fact, given your second point about probable issues with MPI, etc., we’ll probably have to do at least a patch.

Is there something in the talks that requiresl a new version of Stan? I do not think the talks at StanCon should dictate what goes in our releases or when.


Those have been patched and merged. I merged the HTML reference manual branch.

There’s a ton of stuff that could go in at this point. I’m working on integrate_1d for example, and should have a PR done tonight or Friday. Someone would need to add the vectorized RNGs to the language.

At some point, we just have to close the gates and tell everyone there’s another train behind this one.


I think the group decision was to go ahead and do it once MPI was in and then do another right before Stan Con. So I’ll go ahead and make the release today.


I accidentally merged a PR into math develop, so this will actually be tomorrow (tests have to run all the way up and down).


After that goes through, there’s one discrete distribution left behind, but @bbbales and I are working on it.


Okay, looks like all of the blockers are resolved, so I’ll start the 2.18 release now.


It’s out!




@Bob_Carpenter This always confuses me: where do we mention turning STAN_MPI in make/local for MPI run, cmdstan manual or stan manual?


I think both make sense. For now:

  • CmdStan manual in make instructions

  • In the Stan user’s guide (not reference manual) section on map functions

Going forward, I want to add a section to the Stan reference manual on the C++ base class/concept for the generated model class and functions. It’ll make sense to add it there, too, when that exists. For now, the manual avoids going down to code and configuration specifics.

If you missed the manual re-org going by, I split the manual into a reference manual for language and algorithms, a user’s guide with model examples and programming techniques, and a functions guide for the built-in functions. Only the reference manual has html so far, but I’m working on converting the others.


That’s exactly what I’ve missed, thanks.


Thanks, Sean. This is fantastic.

As much as things seem to be going more slowly with all the compiler and integration support, this is a nice set of features to roll out!