Highlights: - **GUI** - Support fast_gui on macOS (1981) (by **Ye Kuang**)
Full changelog: - [blender] Fix inspect.stack() not working in Blender with sourceinspect 0.0.4 (1992) (by **彭于斌**) - [GUI] [mac] Support fast_gui on macOS (1981) (by **Ye Kuang**) - [test] Disable SFG benchmark tests (1986) (by **Ye Kuang**)
0.7.1
Highlights: - **Bug fixes** - Fix some missing operator overrides like __rlshift__ (1978) (by **彭于斌**) - **CUDA backend** - Support NVIDIA RTX 3000 series GPUs (1983) (by **Yuanming Hu**) - **Language and syntax** - Add ti.loop_unique(val) to improve atomics demotion (1961) (by **xumingkuan**) - **Type system** - Implement is_primitive and refactor primitive type equality check (1975) (by **Xuanda Yang**)
Full changelog: - [misc] Fix compabtility with pybind11 2.6 (1984) (by **Yuanming Hu**) - [CUDA] Support NVIDIA RTX 3000 series GPUs (1983) (by **Yuanming Hu**) - [metal] Create helper methods for TLS codegen (1982) (by **Ye Kuang**) - [Bug] [lang] Fix some missing operator overrides like __rlshift__ (1978) (by **彭于斌**) - [type] Add CustomIntType/BitStructType and corresponding SNodes (1968) (by **Yuanming Hu**) - [Type] [refactor] Implement is_primitive and refactor primitive type equality check (1975) (by **Xuanda Yang**) - [async] Add allocator async state (1973) (by **Ye Kuang**) - [Lang] [opt] Add ti.loop_unique(val) to improve atomics demotion (1961) (by **xumingkuan**)
0.7.0
Highlights: - **Error messages** - Use print directly instead of builtin warnings module (1969) (by **彭于斌**) - **Metal backend** - Support assert() (1959) (by **Ye Kuang**) - **Type system** - Remove LegacyVectorType (1967) (by **Jiafeng Liu**) - Make PrimitiveTypeID a public enum (1965) (by **Xuanda Yang**) - Make TypeFactory Global (1963) (by **Jiafeng Liu**) - Adopt the new type system in Stmt (1957) (by **Yuanming Hu**)
Full changelog: - [Error] [ipython] Use print directly instead of builtin warnings module (1969) (by **彭于斌**) - [Type] [refactor] Remove LegacyVectorType (1967) (by **Jiafeng Liu**) - [windows] [gui] Support ti.GUI(fast_gui=True) on Win32 (1953) (by **彭于斌**) - [Type] [refactor] Make PrimitiveTypeID a public enum (1965) (by **Xuanda Yang**) - [misc] Set CMAKE_CXX_STANDARD to 17 (1964) (by **xumingkuan**) - [Type] [refactor] Make TypeFactory Global (1963) (by **Jiafeng Liu**) - [type] Remove DataType::width (1962) (by **Yuanming Hu**) - [Metal] Support assert() (1959) (by **Ye Kuang**) - [type] [refactor] Remove DataType::data_type (1960) (by **Taichi Gardener**) - [Type] Adopt the new type system in Stmt (1957) (by **Yuanming Hu**)
More details on the v0.7 changes will be posted later.
0.6.41
Highlights: - **Bug fixes** - Fix error when subscripting a dict (1950) (by **彭于斌**) - "ext_arr.shape" should return "ti.Expr" instead of "ti.core.Expr" (1939) (by **彭于斌**) - **GUI** - Support "ti.GUI(fast_gui=True)" for zero-copy while gui.set_image(img) (1922) (by **彭于斌**) - **Metal backend** - Support ti.block_dim() and ti.cfg.saturating_grid_dim (1947) (by **Ye Kuang**) - **Performance improvements** - Support thread local storage for reduction in struct-fors (1941) (by **Yuanming Hu**)
Full changelog: - [Bug] [lang] Fix error when subscripting a dict (1950) (by **彭于斌**) - [refactor] Add format_error_message() method (1955) (by **Ye Kuang**) - [async] Use llvm::SmallVector/llvm:SmallSet for latest state readers (1951) (by **Ye Kuang**) - [metal] Support TLS for struct-for tasks (1949) (by **Ye Kuang**) - [Metal] Support ti.block_dim() and ti.cfg.saturating_grid_dim (1947) (by **Ye Kuang**) - [type] Add basic implementations of VectorType and PointerType (1948) (by **Yuanming Hu**) - [refactor] Move OffloadedStmt::TaskType to a separate file (1946) (by **xumingkuan**) - [Bug] [lang] "ext_arr.shape" should return "ti.Expr" instead of "ti.core.Expr" (1939) (by **彭于斌**) - [Perf] Support thread local storage for reduction in struct-fors (1941) (by **Yuanming Hu**) - [async] Do not keep latest state readers in SFG (1945) (by **xumingkuan**) - [refactor] VectorType -> LegacyVectorType (1943) (by **Taichi Gardener**) - [refactor] Remove obsolete AsyncEngine::fuse() (1944) (by **Taichi Gardener**) - [type] Initial TypeFactory class (1942) (by **Yuanming Hu**) - [GUI] [linux] Support "ti.GUI(fast_gui=True)" for zero-copy while gui.set_image(img) (1922) (by **彭于斌**) - [misc] Add misc/fetch_active_contributor.py (1938) (by **Yuanming Hu**)
0.6.40
Highlights: - **GUI** - Support creating fullscreen window by "ti.GUI(fullscreen=True)" (1921) (by **彭于斌**)
Full changelog: - [misc] Add a link to TaichiHub playground in README.md (1933) (by **彭于斌**) - [test] Add a benchmark for SFG edges' two-level map (1927) (by **Ye Kuang**) - [async] Switch to llvm::SmallVector<llvm::SmallSet> for edges (1936) (by **Ye Kuang**) - [async] [opt] Field value killing analysis (1929) (by **xumingkuan**) - [ir] Add the case of bit_shr to binary_op_type_symbol (1930) (by **xumingkuan**) - [GUI] [linux] Support creating fullscreen window by "ti.GUI(fullscreen=True)" (1921) (by **彭于斌**)
0.6.39
Full changelog: - [refactor] Use PrimitiveType::type instead of DataType::type (1926) (by **Taichi Gardener**) - [example] Upgrade mass_spring_3d.py to Taichi THREE v0.0.5 (1919) (by **彭于斌**) - [async] [metal] Support async mode on Metal (1920) (by **Ye Kuang**) - [type] [refactor] Promote DataType to a class (1906) (by **Yuanming Hu**) - [async] Partial SFG node GC (keep latest state writers/readers) (1915) (by **xumingkuan**) - [doc] Improve description of the pos parameter in gui (1904) (by **qbao0x3273**)