Skip to content

Releases: stan-dev/stanc3

nightly: Refactor: Unify majority of stanc.exe and stanc.js code (#1477)

13 Dec 15:58
f777719
Compare
Choose a tag to compare

nightly: f777719 Refactor: Unify majority of stanc.exe and stanc.js code (#1477)

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)

v2.35.0-rc2 (23 May 2024)

23 May 09:33
3f0b2a6
Compare
Choose a tag to compare
Pre-release

nightly: 3f0b2a6 Merge pull request #1426 from stan-dev/rename-sampling-distribution

v2.35.0-rc1

13 May 16:21
2c42646
Compare
Choose a tag to compare

nightly: 2c42646 Merge pull request #1421 from stan-dev/fix/complex-matrix-division-miscompilation

v2.34.0 (16 January 2024)

16 Jan 12:21
59ad5d0
Compare
Choose a tag to compare
  • Added the binomial_logit_glm distribution (#1367)
  • Added the dirichlet_multinomial distribution. (#1389)
  • Added the ability to unpack a tuple during an assignment. For example, the following is now valid:
    parameters {
    matrix[N, M] A;
    }
    model {
    matrix[N, M] Q;
    matrix[M, M] R;
    (Q, R) = qr_thin(A); // qr_thin returns a tuple(matrix, matrix)
    }
    (#1360)
  • Exposed vectorized signatures for the atan2 function. (#1364)
  • The Stan compiler will now warn you when you reassign a variable to itself. (#1358)
  • Updated the OCaml-to-JS compiler used to create stanc.js (#1365, #1381)
  • Updated the compiler to use OCaml 4.14 and newer versions of its dependencies. (#1366)
  • Reverted a change to SoA initialization, as the Math library has implemented a better fix. (#1376)
  • Fixed an issue with clang compilers and constructing tuples. (#1382)
  • The compiler no longer recognizes language constructs removed in 2.33. (#1388)
  • The deprecated implicit conversion of reals to boolean conditions has been removed. (#1388)

v2.34.0-rc1 (8 January 2024)

09 Jan 18:28
Compare
Choose a tag to compare
Pre-release
Remove unused dispatch config

v2.33.1 (13 September 2023)

13 Sep 18:49
934496d
Compare
Choose a tag to compare
  • Fixed several issues with the code generation of user-defined functions which accepted tuples (#1356)