|
1 | 1 | STANC3 RELEASE NOTES
|
2 | 2 | ======================================================================
|
3 | 3 |
|
| 4 | +v2.33.0 (5 September 2023) |
| 5 | +====================================================================== |
| 6 | + |
| 7 | +- Added tuple types to the language (#1100) |
| 8 | +- The following deprecations have been turned into errors this version: |
| 9 | + - The old array syntax, e.g. `int arr[5];`. Use `array[5] int arr;` instead. |
| 10 | + - Distribution functions ending in `_log`. Use either `_lpdf` or `_lpmf`. |
| 11 | + - The functions `binomial_coefficient_log`, `multiply_log`, and `cov_exp_quad`. Use `lchoose`, `lmultiply`, and `gp_exp_quad_cov` respectively. |
| 12 | + - The `if_else` function. Use the ternary operator `cond ? true_value : false_value` |
| 13 | + - Use of CDFs with a `,` between the first and second argument. Use a `|`. |
| 14 | + - Comments beginning with `#`. Use `//`. |
| 15 | + - Use of `<-` for assignment. Use `=`. |
| 16 | + - The `increment_log_prob` function. Use the `target +=` statement. |
| 17 | + - The `get_lp()` function. Use `target()`. |
| 18 | + - The use of nested multi-indices on the left hand side of an assignment statement. |
| 19 | + For this version, these can all be automatically updated with the `--canonicalize=deprecations` argument to the autoformatter. This is not guaranteed to work for versions _following_ this one. |
| 20 | + Additionally, the following identifiers are now reserved words: `array`, `offset`, `multiplier`, `lower`, and `upper`. |
| 21 | + (#1287) |
| 22 | +- Exposed vectorized signatures for `log_sum_exp` (#1344) |
| 23 | +- Exposed new functions `qr`, `qr_thin`, `eigendecompose_sym`, `eigendecompose`, `complex_schur_decompose`, `svd`, and `csr_extract`. (#1346) |
| 24 | +- Added a `log_prob_impl` specialization specifically for reverse mode to improve code generation (#1327) |
| 25 | +- Fixed an issue where returning array literals could produce the wrong types in C++. (#1335) |
| 26 | +- Fixed an issue with leading zeroes in real literals like `0E0` (#1336) |
| 27 | +- Fixed a bug with type promotion in the arguments to user-defined distributions generating bad C++. (#1338) |
| 28 | +- Fixed optimization logic for deducing whether mixes of scalars, data matrices, and autodiff matrices can be promoted to SoA (#1347) |
| 29 | +- Fixed an issue with the partial evaluator crashing on statements containing a mod-by-zero. (#1351) |
| 30 | +- `--filename-in-msg` now also affects the name of the file shown in runtime exceptions. Useful for interfaces which use mangled or temporary names during compilation. (#1339) |
| 31 | +- Improved error message provided when the wrong return type is returned from a function. |
| 32 | + Return statements now follow the same type promotion rules as assignment and function argument passing. |
| 33 | + The typechecker now allows infinite loops (`while (1)` without an internal `break`) to be the end of a returning function. Previously, an (unreachable) return statement was needed following the loop. |
| 34 | + (#1341) |
| 35 | +- Improved error messages for unsupported type in reduce_sum (#1332) |
| 36 | +- Improved error messages when using a reserved word as a variable name. (#1343) |
| 37 | + |
4 | 38 | v2.32.1 (2 May 2023)
|
5 | 39 | ======================================================================
|
6 | 40 |
|
|
0 commit comments