Changes that are visible to users:
- [Lang] Access out-of-bound checking on CPU backends (#572) (by xumingkuan)
- [Lang] Testable device-side assertion failures on CPUs (#605) (by xumingkuan)
- [Lang] Added
Expr.copy_from
(by Yuanming Hu) - [Lang] Added
ti.Vector.unit
to generate unit vectors (by Yuanming Hu) - [Lang] Use
a = ti.static(a_very_long_variable)
for easy aliasing [doc] (#587) (by 彭于斌 and KLozes) - [DiffTaichi] Experimental support for automatically differentiating through conditional global load/stores (by Yuanming Hu)
- [Lang] Added
ti.atomic_min
,ti.atomic_max
,ti.atomic_bit_or
,ti.atomic_bit_and
,ti.atomic_bit_xor
(CPU and CUDA by KLozes, OpenGL by 彭于斌, Metal by Ye Kuang) - [Bugfix] Fixed stack traceback printing on OS X (#610) (by Yuanming Hu)
- [CLI]
ti format
now cover all files from upstream/master to the working tree (#629) (by Ye Kuang) - [CLI]
ti test
now usesargparse
for better customizability (#601) (by 彭于斌) - [Backend] OpenGL Compute Shader backend will officially release very soon with v0.6! (by 彭于斌)
- [Backend] Metal backend sparsity support work in progress (by Ye Kuang)
- [Example] Added
examples/mgpcg.py
(#573) (by KLozes) - [Example] Added
examples/sdf_renderer.py
(by Yuanming Hu) - [Example] Added
examples/mgpcg_advanced.py
(#573) (by Yuanming Hu)
All changes:
- Postponed demote_dense_struct_for on x86 and CUDA (#649) (by Yuanming Hu)
- Add LineAppender to dedupe code emitting methods (#643) (by Ye Kuang)
- Simplify init in mgpcg_advanced.py (#645) (by xumingkuan)
- New extension 'adstack' (#646) (by Yuanming Hu)
- Mutable local variable autodiff (#640) (by Yuanming Hu)
- Change Jenkins repo URL to taichi-dev (#644) (by Yuanming Hu)
- Fix Jenkinsfile after testing CLI update (#642) (by Yuanming Hu)
- Fixed 'ti format' crashing on deleted files (#641) (by Yuanming Hu)
- Support atomic min/max/bit_and/bit_or/bit_xor on Metal (#632) (by Ye Kuang)
- Add atomic_bit_or/xor/and for OpenGL (#634) (by 彭于斌)
- [Metal] Add runtime support in Metal codegen (#626) (by Ye Kuang)
- Fixed ASTTransformer.visit_For on static ndrange loops (#630) (by Yuanming Hu)
- Add atomic min/max/bit_and/bit_or/bit_xor (#627) (by KLozes)
- For Loops with Grouped NDRange (#625) (by xumingkuan)
- Make
ti format
cover all files from upstream/master to the working tree (#629) (by Ye Kuang) - Removed ClearAllStmt (#624) (by Yuanming Hu)
- Refactor type system: added pointer, i1->u1, created data_type.inc.h (#623) (by Yuanming Hu)
- Link to format server in PR template (#619) (by Yuanming Hu)
- Format server index page (#618) (by Yuanming Hu)
- Reformat everything (#617) (by Taichi Gardener)
- Improved
ti format
(#616) (by Yuanming Hu) - IR extension for mutable local variable history and autodiff (#608) (by Yuanming Hu)
- Added syntax sugar doc for static assignment (#585) (by KLozes)
- Use argparse for
ti test
in taichi/main.py to implement #600 (#601) (by 彭于斌) - [Metal] Add Runtime shaders to support sparse SNode (#614) (by Ye Kuang)
- throw UnboundLocalError when accessing loop variables outside static for loops (#613) (by Yuanming Hu)
- Testable Device-Side Assertion Failures on CPUs (#605) (by xumingkuan)
- [Metal] Move Metal shader code to shaders/ folder (#611) (by Ye Kuang)
- fixed print_traceback overflow on OS X (#610) (by Yuanming Hu)
- Simplified GlobalPtrStmt and improved its CSE optimization (#599) (by Yuanming Hu)
- OpenGL backend (stage 2.2.2) (#545) (by 彭于斌)
- Removed unused fields of SNode (#598) (by Yuanming Hu)
- Fixed non-OpenGL build (#596) (by Yuanming Hu)
- OpenGL backend minor fixes (stage 2.2.1) (#595) (by 彭于斌)
- OpenGL external array access (stage 2.1.2) (#586) (by 彭于斌)
- OpenGL range_for support (stage 2.1.1) (#594) (by 彭于斌)
- Fix travis (#589) (by Yuanming Hu)
- Format server script (#588) (by Yuanming Hu)
- add static ptr assignment for funcs too (#587) (by KLozes)
- Temporary global variable aliasing within kernels #574 (#575) (by 彭于斌)
- make mgpcg_advanced.py more dimensionality-independent (by Yuanming Hu)
- allow passing ti.Expr/Matrix to ti.func (by Yuanming Hu)
- ti.Vector.unit (by Yuanming Hu)
- added a more advanced MGPCG exmaple (by Yuanming Hu)
- Access out-of-bound checking on CPU backends (Stage 2) (#582) (by xumingkuan)
- use array of scalars instead of ti.Vector in mgpcg.py (by Yuanming Hu)
- simplified mgpcg example; multigrid switch (by Yuanming Hu)
- simplify mgpcg with more templates (by Yuanming Hu)
- reformat example/mgpcg.py (#584) (by Taichi Gardener)
- mark side effects for GloatPtrStmt with activation (by Yuanming Hu)
- Avoid error message formatting for valid accesses (#579) (by xumingkuan)
- [feature] Access out-of-bound checking on CPU backends (#572), stage 1 (by xumingkuan)
- [bugfix] fixed type demotion behavior (by Yuanming Hu)
- simplified examples/mgpcg.py by leveraging new language features (by Yuanming Hu)
- add mgpcg example (#573) (by KLozes)
- comments to examples/particle_renderer.py (by Yuanming Hu)
- Expr.copy_from (by Yuanming Hu)
- [Refactor] hide MetalStructCompiler to the cpp file (#569) (by Ye Kuang)
- [Metal] Decouple Metal's runtime from LLVM memory (#568) (by Ye Kuang)
- Add assertions to prevent infinite loop in
least_pot_bound
in case of negative snode size (#567) (by xumingkuan)