|
1 | 1 | STANC3 RELEASE NOTES |
2 | 2 | ====================================================================== |
3 | 3 |
|
| 4 | +v2.29.0 (14 February 2022) |
| 5 | +====================================================================== |
| 6 | + |
| 7 | +FEATURES |
| 8 | + - Allow most reserved words in C++ (e.g., `public`) to appear in a stan program; they will be changed by the compiler to `_stan_<reserved word>` in the generated C++. (#962) |
| 9 | + - User defined functions can now be overloaded. Multiple definitions of the same function name are allowed if the arguments are different in each definition.(#1027) |
| 10 | + - Improved error messages for incorrect variable declarations. (#1099) |
| 11 | + - When an unknown identifier is encountered Stan will suggest nearby known names you might have meant (#1024) |
| 12 | + - Extra semicolons in `data` or `parameters` no longer produce syntax errors. (#988) |
| 13 | + - Improved error messages for incomplete probability library calls. (#1021) |
| 14 | + - Added nicer error message when a comment is unterminated at end of input. (#1025) |
| 15 | + - All internal compiler errors now include a link to the stanc3 issues page. (#1028) |
| 16 | + - Improve error messages when a user tries to declare a function argument as a constrained type. (#1030) |
| 17 | + - Replaced the use of the word twiddle with tilde in pedantic warning messages. (#1050) |
| 18 | + - Allow user-defined densities over complex arguments and deeply nested arguments. (#1046) |
| 19 | + - Added optimization layers `--O0` (default), `--O1`, and `--Oexperimental` |
| 20 | + - Turn back on allowing immediately assigned to decls not be NaN initialized at `O1` (#1029) |
| 21 | + - Allows `log_prob_impl` to use Struct of Arrays type for reverse mode autodiff at `O1` (#955) |
| 22 | + - Issue a warning when a user has a model with unreachable statements, such as code following a `return` statement. (#1063) |
| 23 | + - The compiler can now compile or format standalone function definitions in a `.stanfunctions` file. These are compiled as if a normal Stan program was compiled with `stanc3 --standalone-functions` and can be used with `#include` statements in the `functions` block (#1022) |
| 24 | + - The canonicalizer can now have each part enabled seperately. This can be done with commands like `stanc --auto-format --canonicalize=braces,deprecations <model>`. Current options are `deprecations`, `braces`, and `parenthesis`. (#1058) |
| 25 | + - Ensure the canonicalizer properly prints nested if-else statements. (#1055) |
| 26 | + - `--auto-format` no longer prints code which originated from an `#include` directive. This can be re-enabled by using `canonicalize=includes`. (#1069) |
| 27 | + - When using `--auto-format`, the user can now pass `--max-line-length=#` to set the column number at which the formatter will try to break lines. (#1068) |
| 28 | + - Tweak pretty-printing of if-else blocks. (#1008) |
| 29 | + - Canonicalizer now adds brackets around single statements in if-else/for/while. (#1003) |
| 30 | + - Expose `bernoulli_logit_glm_rng` functions. (#1034) |
| 31 | + - lchoose now has the same signatures as binomial_coefficient_log. (#1010) |
| 32 | + - Added `ordered_probit_lpmf(array[] int, real, vector) => real` and `ordered_probit_lpmf(array[] int, real, array[] vector) => real`. (#1073) |
| 33 | + - Added additional `normal_id_glm` signatures. (#1084) |
| 34 | + - Added signatures for `inv_erfc` function. (#1090) |
| 35 | + - Added Differential-Algebraic Equation solver (`dae`, `dae_tol`). (#1092) |
| 36 | + - Added `von_mises_cdf`, `von_mises_lcdf`, von_mises_lccdf`. (#1085) |
| 37 | + - Added `loglogistic_lpdf`, `loglogistic_log`, `loglogistic_rng` and `loglogistic_cdf`. (#1094) |
| 38 | + - Clean up more mutable state in the Javascript interface (#1118) |
| 39 | + |
| 40 | +DEPRECATIONS |
| 41 | + - Added a warning for `matrix^scalar` that points users to `.^` and `matrix_power()`. (#1026) |
| 42 | + - Warn about the following identifiers being reserved in a future version: `array`, `upper`, `lower`, `offset`, `multiplier`. (#1048) |
| 43 | + - The old form of declaring arrays like `real a[5]`, which has been deprecated since 2.26, now issues a warning. (#1072) |
| 44 | + - Marked existing syntax deprecations (e.g., `<-`) as expiring in Stan 2.32.0. (#1044) |
| 45 | + - Deprecate nested multi-indexing on lvalues as it is inconsistent with rvalues.(#1059) |
| 46 | + |
| 47 | +BUGFIXES |
| 48 | + - Fixed an issue that arose during C++ compilation of models that used a variable with the same name as a Stan library function and called that function. (#1011) |
| 49 | + - Fixed a bug where the lexer was allowing illegal variable names which began with an underscore. (#962) |
| 50 | + - Fixed an issue with parser errors 'sticking around' on subsequent runs, which primarily affected the Javascript compiler. (#1074) |
| 51 | + |
| 52 | +DEVELOPER |
| 53 | + - Updated OCaml and build dependencies. (#1019) |
| 54 | + - Create internal developer documentation at https://mc-stan.org/stanc3/stanc/. (#1006) |
| 55 | + - stan2tfp now lives in a seperate repo at stan-dev/stan2tfp. (#1040) |
| 56 | + - Refactored Stan typechecker. (#995) |
| 57 | + - Replaces all references to Docker Hub for andrjohns images with stanorg. (#1017) |
| 58 | + - Move docker to ci-scripts repository. (#1020) |
| 59 | + - Refactored when logic for binaries builds and release. (#1018) |
| 60 | + - Added optimization level flags, debug-* and dump-math-signatures flags to stancjs. (#1082) |
| 61 | + - Compile Tests and Model end-to-end tests run now optionally only when test/integration/good has changed. (#1018) |
| 62 | + |
4 | 63 | v2.28.1 (21 October 2021) |
5 | 64 | ====================================================================== |
6 | 65 |
|
|
0 commit comments