With the help of our users, we have identified a few additional issues that were present in the 2.29 and 2.29.1 releases and we have thus released CmdStan version 2.29.2. The issues that were identified and fixed for this patch release are given below.
We would like to thank Aki Vehtari, Joe Wingbermuehle and the Github user nikuehn
for reporting the issues as well as Steve Bronder, Brian Ward and Rok Češnovar for addressing them.
We would also like to once again thank the Flatiron Institute for providing us with the computing resources to run unit tests and build scripts for our repositories. Together with the bug fixes we expanded the testing coverage to make sure these issues do not pop up again.
Addressed bugs
– We added two signatures of the normal_id_glm_lpdf
function that were listed in the documentation but were not supported in the Stan-to-C++ compiler. These are normal_id_glm_lpdf(vector, matrix, real, vector, vector) => real
and normal_id_glm_lpdf(vector, matrix, vector, vector, vector) => real
.
– In the 2.29 release, selecting matrix rows with matrix[x:x, ]
, so for example a[1:1, ], b[2:2, ], ...
, returned a matrix with zero rows as opposed to a single row (the x
-th row).
– A couple of issues that affected users when using the O1
Stan-to-C++ compile-time optimization flag. The bugs prevented the generated C++ code to compile due to faulty optimization of automatic differentiation levels and issues with the new Struct-to-Array and the fma()
function and assignments. These issues did not affect users that did not use the O1
flag.
Known issue
Some of the features that were added in the 2.29 release, required changing the way the Stan-to-C++ compiler generates the C++ for user-defined functions. These changes currently prevent the use of external C++ code in some cases, particularly when using the `clang` C++ compiler. These issues will be addressed with a general solution in the next release. If your models require custom external C++ code, we advise using the 2.28.2 release in the meantime. We apologize for the inconvenience.