Skip to content

Releases: stan-dev/stanc3

nightly: Merge pull request #1552 from stan-dev/improve-semantic-error-messages

19 Sep 14:00
35ec0c1
Compare
Choose a tag to compare

nightly: 35ec0c1 Merge pull request #1552 from stan-dev/improve-semantic-error-messages

v2.37.0 (2 September 2025)

03 Sep 20:21
Compare
Choose a tag to compare
  • 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, and hypergeometric_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 improved stanc --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 and stanc.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)

18 Aug 14:25
03f4ea6
Compare
Choose a tag to compare
Pre-release

nightly: 03f4ea6 Merge pull request #1540 from stan-dev/fix/mislabeled-scalar-functions-SoA

v2.37.0-rc4 (22 August 2025)

22 Aug 08:54
03f4ea6
Compare
Choose a tag to compare
Pre-release
Merge pull request #1540 from stan-dev/fix/mislabeled-scalar-function…

v2.37.0-rc2 (12 June 2025)

12 Jun 12:53
cc09d41
Compare
Choose a tag to compare
Pre-release

nightly: cc09d41 Merge pull request #1520 from stan-dev/ci/use-parallel-from-executors

v2.37.0-rc1 (5 June 2025)

05 Jun 14:22
a8c4995
Compare
Choose a tag to compare
Pre-release

nightly: a8c4995 Merge pull request #1516 from stan-dev/laplace-check-indexing-exprs

v2.36.0 (10 December 2024)

10 Dec 12:43
0366507
Compare
Choose a tag to compare
  • 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 of target += but which can be conditionally disabled by Stan's algorithms when a unadjusted estimate is required. (#1435, #1437, #1471)
  • Added stochastic_row_matrix and stochastic_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 either undefined or a object mapping included file names to Stan source code as strings. (#1433)
  • Enabled OpenCL support for the binomial_logit and binomial_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

03 Dec 12:36
8d74ceb
Compare
Choose a tag to compare

nightly: 8d74ceb Merge pull request #1471 from stan-dev/fix/1470-underscore-jacobian-bwd-compat

v2.36.0-rc1: Merge pull request #1467 from stan-dev/feature/beta_neg_binomial_rng

25 Nov 12:22
96e409a
Compare
Choose a tag to compare

nightly: 96e409a Merge pull request #1467 from stan-dev/feature/beta_neg_binomial_rng

v2.35.0 (3 June 2024)

03 Jun 14:51
Compare
Choose a tag to compare
  • Rename sampling statement (~) to distribution 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 to reject() 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)