v0.6.20
Highlights:
- Bug fixes
- Fix environment variable TI_ARCH=xxx not work (#1528) (by 彭于斌)
- CUDA backend
- Examples
- GUI
- Support gui.triangles() for batched triangle painting (#1520) (by 彭于斌)
- Language and syntax
- Enhance warning system and support runtime assert message (#1492) (by 彭于斌)
- Support "break" and "continue" in static-fors (#1496) (by 彭于斌)
- Support (a if cond else b) syntax in Taichi-scope (#1468) (by 彭于斌)
- Make block local storage support coordinate offsets and improve its performance (#1497) (by Yuanming Hu)
- Linux
- Fix LLVM symbol leakage to prevent conflict with libGLX_mesa.so by LD version script (#1508) (by 彭于斌)
- Performance improvements
- Make BLS work for MPM (#1518) (by Yuanming Hu)
- Refactor
- Add "ti.field" and "ti.Matrix.field" for future deprecation of "ti.var" (#1502) (by 彭于斌)
Full changelog:
- [Example] [autodiff] Add FEM elastic simulator: fem99 and fem128 (#1521) (by 彭于斌)
- [cuda] Another mutex fix (#1534) (by Yuanming Hu)
- [opengl] [test] Fix failed OpenGL tests these days (#1533) (by 彭于斌)
- [misc] Prettify KernelProfiler outputs (#1525) (by Yuanming Hu)
- [Example] [autodiff] Add ad_gravity.py (compute gradient from potential energy) (#1522) (by 彭于斌)
- [cuda] Fix mutex on Turing GPUs (#1532) (by Yuanming Hu)
- [Bug] [cli] Fix environment variable TI_ARCH=xxx not work (#1528) (by 彭于斌)
- [Example] Enhance nbody_oscillator.py with molecular force (#1529) (by 彭于斌)
- [metal] Introduce SNodeRep_* to be used in the generated SNode structs (#1527) (by Ye Kuang)
- [test] Fix a typo in test_field.py that caused the failure of CI (#1523) (by Xudong Feng)
- [bug] Fix dynamic SNode activation (#1526) (by Yuanming Hu)
- [GUI] Support gui.triangles() for batched triangle painting (#1520) (by 彭于斌)
- [Perf] Make BLS work for MPM (#1518) (by Yuanming Hu)
- [test] Add test_fuse_dynamic.py to unit test (#1513) (by Ye Kuang)
- [doc] Update documentaion on meta programming for #1374 (#1389) (by 彭于斌)
- [CUDA] Use CUDA launch bound to limit register usage (#1516) (by Yuanming Hu)
- [misc] Fix ti.init argument parsing when corresponding environment variable presents (#1517) (by Yuanming Hu)
- [metal] Fix listgen when iterating over children of bitmasked (#1511) (by Ye Kuang)
- [test] Fix test_field.py (#1514) (by Yuanming Hu)
- [Refactor] [lang] Add "ti.field" and "ti.Matrix.field" for future deprecation of "ti.var" (#1502) (by 彭于斌)
- [misc] Update README.md (#1512) (by Yuanming Hu)
- [Lang] Enhance warning system and support runtime assert message (#1492) (by 彭于斌)
- [CUDA] [llvm] Format CUDA assertions and access out-of-bound errors on the host (#1509) (by Yuanming Hu)
- [opt] Enable dead instruction elimination for RangeAssumptionStmt (#1507) (by xumingkuan)
- [Linux] Fix LLVM symbol leakage to prevent conflict with libGLX_mesa.so by LD version script (#1508) (by 彭于斌)
- [cli] Fix "AttributeError" of pytest arguments (#1505) (by xumingkuan)
- [cli] Remove the never used 'tid' command (#1494) (by 彭于斌)
- [Lang] Support "break" and "continue" in static-fors (#1496) (by 彭于斌)
- [doc] Fix code-block render issue in debugging.rst (#1484) (by 彭于斌)
- [Lang] Support (a if cond else b) syntax in Taichi-scope (#1468) (by 彭于斌)
- [async] Add test_fuse_dense.py to unit tests (#1504) (by Ye Kuang)
- [Lang] [perf] Make block local storage support coordinate offsets and improve its performance (#1497) (by Yuanming Hu)
- [metal] Misc tweaks to make #1480 easier to review (#1481) (by Ye Kuang)