Highlights:
- Bug fixes
- Fix all potential matrix SSA violation by using element_wise_write_binary (#1424) (by 彭于斌)
- CUDA backend
- Improve random number generator performance (#1419) (by Yuanming Hu)
- Docker
- Update the Dockerfile to use up-to-date instructions for Ubuntu (#1385) (by Chengchen(Rex) Wang)
- Error messages
- GUI
- Intermediate representation
- Block local storage for struct-for's on CUDA (#1394) (by Yuanming Hu)
- Language and syntax
- Add ti.static_assert for compile-time assertations (#1344) (by 彭于斌)
- Metal backend
- Use managed storage mode to improve performance (#1415) (by Ye Kuang)
- IR optimization passes
- Better aliasing analysis for dead store elimination (#1432) (by xumingkuan)
- Performance improvements
- Support TLS for GlobalTemporaryStmt (#1423) (by Ye Kuang)
Full changelog:
- [GUI] Get images from the current GUI using gui.get_image() (#1422) (by Xudong Feng)
- [cuda] [bug] Fix CUDA garbage collection grid dim (#1438) (by Yuanming Hu)
- [misc] ActionRecorder (Stage I) (#1428) (by Yuanming Hu)
- [Bug] [lang] [std] Fix all potential matrix SSA violation by using element_wise_write_binary (#1424) (by 彭于斌)
- [Opt] [bug] Better aliasing analysis for dead store elimination (#1432) (by xumingkuan)
- [metal] Pass kernel name and is_evalutator to the runtime (#1430) (by Ye Kuang)
- [Error] Raise an warning when a Taichi matrix have > 32 entries (#1401) (by 彭于斌)
- [llvm] Separate BLS/TLS and refactor loop code generation (#1425) (by Yuanming Hu)
- [Metal] Use managed storage mode to improve performance (#1415) (by Ye Kuang)
- [Perf] Support TLS for GlobalTemporaryStmt (#1423) (by Ye Kuang)
- [Error] Show pretty & intuitive stack traceback when ti.enable_excepthook() used (#1405) (by 彭于斌)
- [error] Instruct user to use static range when matrix accessed with non constant index (#1420) (by 彭于斌)
- [CUDA] Improve random number generator performance (#1419) (by Yuanming Hu)
- [GUI] [linux] Support mouse wheel event on Linux/X11 (#1411) (by 彭于斌)
- [GUI] Support mouse wheel event on Mac Cocoa (#1418) (by Ye Kuang)
- [error] Fix wrong error message when using vector as if condition (#1417) (by 彭于斌)
- [bug] Fix test_fibonacci (#1414) (by Ye Kuang)
- [test] [std] Add matrix SSA violation regression test (#1412) (by 彭于斌)
- [GUI] Support mouse wheel event on Win32 (#1382) (by JYLeeLYJ)
- [opt] [refactor] Move advanced optimization toggle to "ti.cfg.advanced_optimization" (#1403) (by 彭于斌)
- [Lang] Add ti.static_assert for compile-time assertations (#1344) (by 彭于斌)
- [IR] Block local storage for struct-for's on CUDA (#1394) (by Yuanming Hu)
- [Docker] Update the Dockerfile to use up-to-date instructions for Ubuntu (#1385) (by Chengchen(Rex) Wang)
- [llvm] Use LLVM 10 for AppVeyor and GitHub actions (#1402) (by Yuanming Hu)
- [opt] Flatten if(0) and if(1) (#1393) (by xumingkuan)
- [cc] Add struct compiler to the experimental C backend (#1354) (by 彭于斌)
- [workflow] Fix PR title checker "fix fatal: bad revision 'master'" in release PR (#1399) (by 彭于斌)