Releases: stan-dev/stanc3
Releases · stan-dev/stanc3
nightly: Merge pull request #1577 from stan-dev/promote-reals
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_pFqfunctions (#1504) - All the built-in constraint types now have corresponding
_jacobian,_constrain, and_unconstrainfunctions. 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 --helpfor 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--O1flag. (#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
relibrary (#1489) stanc.jswill now properly complain if it is supplied with incorrect javascript types for its arguments. (#1475)stanc.jsandstanc.exenow share significantly more code between them. (#1477)- Fixed an issue where repeated calls to
stanc.jswould re-use the same model namespace in the generated C++ (#1492) - Updated
js_of_ocamlversion to 5.9.1 (#1484) - Updated
fmtversion 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
realvalues 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_matrixandstochastic_column_matrixtransforms for matrix types. (#1442) - Added the
sum_to_zero_vectortransform 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.jscan now accept models which contain#includestatements. A fourth argument is available on the javascript stanc function which must be eitherundefinedor a object mapping included file names to Stan source code as strings. (#1433)- Enabled OpenCL support for the
binomial_logitandbinomial_logit_glmdistributions. (#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
autoso 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.jswith 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::ecuyer1988generator, but uses a type alias defined in the Stan library. (#1395) - Fixed an issue where multiple
rejectstatements could cause the C++ compiler to fail. (#1396) - Giving a variable the name
jacobianis 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_erroris now a reserved word. (#1402) - Exposed the new overloads of
wiener_lpdfadded 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_covdistribution 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
realvalues 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)