Release of CmdStan 2.35

We are very happy to announce that the 2.35.0 release of CmdStan is now available on Github! As usual, the release of CmdStan is accompanied by new releases of Stan Math, core Stan, and Stanc3. A PyStan update will follow shortly.

This release cycle focused on fixing bugs and adding quality of life improvements to the Stan ecosystem.

Contributors, sponsors and donators

We would like to thank everyone that contributed to this release with their bug reports, feature or bug fix discussions, and code or code reviews.

Several issues in early versions of this release were caught and reported by the community,

and we are grateful for their time and effort in improving Stan.

We would also like to thank all of our sponsors and donators who have supported us during this last release cycle and in years past. Thanks to the Flatiron Institute for providing us with the computing resources to run unit tests and build scripts for our repositories.

You can support Stan via NumFocus or the Github sponsorship program.

Release highlights

Bail out with fatal_error()

There is a new statement type: fatal_error. This looks a lot like print or reject, but will immediately terminate the algorithm rather than being used to signal a divergence.

A new RNG used internally

Stan now uses the boost::mixmax pRNG for generating random numbers internally. The primary consequence of this for most users is that seeds from previous versions will not yield the same numerical results on this version.

As per usual, exact reproducibility requires a fixed version of Stan, but this change is larger than normal, hence it being noted here.

Improved CmdStan outputs

Several new output options are available for CmdStan to produce JSON files for easier processing.

– The diagnostic_file argument for the Laplace approximation sampler will now give a JSON output which contains the Hessian of the mode

– The laplace method now supports the calculate_lp argument, similar to Pathfinder in the previous release.

– Pathfinder will no longer return more draws than requested in certain circumstances.

New distributions

This release saw the extension of the wiener_lpdf distribution to a version with 7 parameters by Franziska Henrich. Existing signatures are unchanged.

Deprecations

The keyword jacobian is being reserved for use within the Stan language in a future version.

Improved portability

This release includes support for Windows on ARM64, and allows

Windows users to use the standard make command in place of the mingw32-make command.

Bug fixes!

This release also contains a large number of bug fixes across all levels of the Stan ecosystem. Some details are available in the release notes for each project:

How to install the new release?

Download the tar.gz file here, extract it, and use it the way you use any Cmdstan release. We also have an online Cmdstan guide available at https://mc-stan.org/docs/cmdstan-guide.

If you are using cmdstanpy you can install using

cmdstanpy.install_cmdstan()

With CmdStanR you can install using

cmdstanr::install_cmdstan()

Note that both cmdstanpy and CmdStanR users are recommend to update their versions of those libraries when installing a new CmdStan to get support for newer features and the latest bug fixes.

Leave a comment