Releases: stan-dev/stanc3
Releases · stan-dev/stanc3
nightly: Merge pull request #1552 from stan-dev/improve-semantic-error-messages
v2.37.0 (2 September 2025)
- Added a new constraint,
sum_to_zero_matrix
, which is a matrix that sums to zero along both axes. (#1506) - Exposed the
hypergeometric_1F0
,hypergeometric_2F1
,hypergeometric_3F2
, andhypergeometric_pFq
functions (#1504) - All the built-in constraint types now have corresponding
_jacobian
,_constrain
, and_unconstrain
functions. The first two functions are identical except for the _jacobian version will increment the target with the necessary change of variables adjustment. (#1494) - Improved the command-line argument parser for
stanc
. Existing flags are still supported, but new aliases may be available. See the new and improvedstanc --help
for details. (#1478) - The compiler now accepts
-
as a model argument, in which case it reads from standard input. (#1488) - Decreased the start-up overhead of the compiler. (#1496, #1498)
- Fixed a bug with assigning to an entire vector or matrix using
:
with the--O1
flag. (#1508) - Fixed a few functions being labeled as supporting the struct-of-arrays matrix type when they in fact did not. (#1540)
- Updated code generation of tuples to avoid issues with dangling references and some generated code being uncompilable. (#1535)
- The MacOS binaries we distribute are now 'universal' (fat) binaries, and therefore will not require Rosetta to run. (#1483, #1501)
- Updated our build process to make it easier to maintain. Note: Stan is no longer building binaries for the mips64le architecture. (#1495)
- Removed usages of the
re
library (#1489) stanc.js
will now properly complain if it is supplied with incorrect javascript types for its arguments. (#1475)stanc.js
andstanc.exe
now share significantly more code between them. (#1477)- Fixed an issue where repeated calls to
stanc.js
would re-use the same model namespace in the generated C++ (#1492) - Updated
js_of_ocaml
version to 5.9.1 (#1484) - Updated
fmt
version to 0.10.0 (#1512)
v2.37.0-rc3 (18 August 2025)
v2.37.0-rc4 (22 August 2025)
Merge pull request #1540 from stan-dev/fix/mislabeled-scalar-function…
v2.37.0-rc2 (12 June 2025)
v2.37.0-rc1 (5 June 2025)
v2.36.0 (10 December 2024)
- Removed code following the last round of syntax deprecations that is currently scheduled. The final one (use of
real
values in conditionals) is now a type error and can no longer be automatically canonicalized. (#1420) - Added the
jacobian +=
statement, an analogue oftarget +=
but which can be conditionally disabled by Stan's algorithms when a unadjusted estimate is required. (#1435, #1437, #1471) - Added
stochastic_row_matrix
andstochastic_column_matrix
transforms for matrix types. (#1442) - Added the
sum_to_zero_vector
transform for vector types. (#1443) - Added distribution: beta_neg_binomial, with corresponding lpdf, cdf, lcdf, lccdf, and rng functions. (#1452, #1459, #1467)
- Added all-vector signatures to the newer versions of
wiener_lpdf
. (#1451) stanc.js
can now accept models which contain#include
statements. A fourth argument is available on the javascript stanc function which must be eitherundefined
or a object mapping included file names to Stan source code as strings. (#1433)- Enabled OpenCL support for the
binomial_logit
andbinomial_logit_glm
distributions. (#1368) - Fixed an issue where certain overloads of distributions could lead to the
~
statement producing uncompilable C++. (#1466, #1474) - Fixed an issue where
operator/
was not generating the correct C++ for complex linear algebra types. (#1421) - Fixed an issue where certain variable names would end up conflicting with system-specific macros in the generated C++. (#1429)
- Fixed an issue where void functions were not given the same checks as returning functions, leading to uncompilable C++ in some cases. (#1471)
- Updated parameter code generation to use
auto
so that the parameter types for matrices can be Eigen maps. (#1441) - Rolled back js_of_ocaml to 5.4.0 for compatibility with QuickJS. (#1427)
- Added builds of
stanc.js
with pretty-printing and debug info. (#1440)
v2.36.0-rc2
v2.36.0-rc1: Merge pull request #1467 from stan-dev/feature/beta_neg_binomial_rng
v2.35.0 (3 June 2024)
- Rename
sampling statement (~)
todistribution statement (~)
to be consistent with the docs changes. (#1426) - The generated C++ no longer assumes that the RNG used in Stan is specifically the
boost::ecuyer1988
generator, but uses a type alias defined in the Stan library. (#1395) - Fixed an issue where multiple
reject
statements could cause the C++ compiler to fail. (#1396) - Giving a variable the name
jacobian
is now deprecated. This name is being reserved for future language extensions. (#1397) - When encountering an unknown identifier that matches a known suffixed function without its suffix, add the known function name to the error message. (#1401)
- Added
fatal_error()
, which is similar toreject()
but rather than signaling an error which is recoverable, signals an error which should terminate execution immediately.fatal_error
is now a reserved word. (#1402) - Exposed the new overloads of
wiener_lpdf
added to Stan Math by @Franzi2114. (#1411) - Added a better error message when a program attempts to use the removed array syntax. (#1413)
- Use tabs to position error message cursor when appropriate. (#1414)
- Replaced the link show when the deprecated
lkj_cov
distribution is used with the new link (see stan-dev/docs#694). (#1415) - The compiler should display a cleaner error if it encounters an internal error. (#1416)
- Clarified the error messages generated by a syntax error on the right side of an assignment statement. (#1417)
- Removed code following the last round of syntax deprecations that is currently scheduled. The final one (use of
real
values in conditionals) is now a type error and can no longer be automatically canonicalized. (#1420) - Fixed an issue where
operator/
was not generating the correct C++ for complex linear algebra types. (#1421) - Rollback js_of_ocaml to 5.4.0 for compatibility with QuickJS. (#1427)