Check correctness of list_collapsing
Nobody has claimed this yet.
- Dominant language
- OCaml
- Stars
- 160
- Forks
- 59
- Avg merge
- 21h 45m
- Merged PRs (30d)
- 26
Description
The issue is to check correctness of the optimization in the issue title and to wire it up in the Stan_math backend (after the backend specific transformations). For now, it should be hidden behind a command line flag.
Check list:
- you've gone over all the code in the optimization and you've convinced yourself it is correct, taking particular care with all the possibilities for expressions (including _lp-functions, _rng-functions, compiler internal functions like
ReadParam__) to side effect (where the particular kind of side effect determines which optimizations are allowed: e.g. _rng functions cannot be CSE'd but can be dead-code eliminated; _lp functions cannot be touced by either optimization) - you've gone over all the unit tests and added to them to convince yourself that the implementation does on the MIR what it should do
- the optimization is wired up in the backend, after the backend specific transformations, and is exposed under a command line flag
- you've gone over the stat-comp-benchmarks or other models that are being run on Jenkins and have made sure the optimization is stressed and is passing tests on those (for example, convince yourself that the optimization would actually do non-trivial work on the models being tested).
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the list_collapsing optimization and its unit tests, then review how it handles side effects including lp-functions, rng-functions, and ReadParam. Trace the Stan_math backend transformations and the command-line flag path. Done means the MIR tests, benchmark or Jenkins models, and backend integration demonstrate correct, non-trivial optimization behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ocaml
- Domain
- compilers
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100