Highlights:
- Android
- Add initial support of the platform (#3755) (by Gabriel H)
- Bug fixes
- Documentation
- Examples
- Fix constraint correction (#3740) (by Peng Yu)
- GUI
- Fix gui.text crash bug (#3770) (by Peng Yu)
- Language and syntax
- Use ndarray own memory allocator by default (#3843) (by Bo Qiao)
- User-friendly exception when copying between ti.field (#3442) (by J. Li)
- Enforce single deterministic return in taichi kernels and functions (#3795) (by lin-hitonami)
- Add "In" support in static scope (#3792) (by lin-hitonami)
- Support sparse solver datatype configuration (#3733) (by Peng Yu)
- Fix pylint rule C0321 (multiple-statements) and C0325 (superfluous-parens). (#3762) (by kxxt)
- Enforce members of a matrix field to have same shape (#3761) (by Yi Xu)
- Fix pylint rule W1309 (f-string-without-interpolation) (#3757) (by kxxt)
- LLVM backend (CPU and CUDA)
- Remove the dependency of llvm-as (#3562) (by Tianshu Xu)
- Metal backend
- Pass random seed to metal backend (#3724) (by Jian Zeng)
- Performance improvements
- Unnecessary assignment as it is redefined (#3753) (by skywf)
- Vulkan backend
Full changelog:
- [misc] Fix postsubmit status in README.md by replacing it with publishing checks (#3840) (by Velaciela)
- [Lang] Use ndarray own memory allocator by default (#3843) (by Bo Qiao)
- memset before reusing memory (#3841) (by Bo Qiao)
- [refactor] Recover 'in' operator in vector_to_fast_image() (#3839) (by Yi Xu)
- [Bug] [lang] Fix copying a Matrix/Struct in Taichi scope (#3838) (by Yi Xu)
- [refactor] Remove import taichi in common_ops.py (#3824) (by lin-hitonami)
- [vulkan] Fix command serial ordering & uses less queue submits (#3818) (by Bob Cao)
- [ci] Enforce using ninja on Windows in both release and normal testing (#3837) (by Yi Xu)
- [lang] Fix ndarray cuda dealloc when using preallocated memory (#3829) (by Bo Qiao)
- [Lang] User-friendly exception when copying between ti.field (#3442) (by J. Li)
- [refactor] Remove import taichi in kernel_impl.py (#3825) (by lin-hitonami)
- Update TaichiCXXFlags.cmake (#3823) (by Bob Cao)
- [bug] Fix static grouped for (#3822) (by lin-hitonami)
- [misc] Slient & non-blocking version check (#3816) (by Jiasheng Zhang)
- [doc] Editorial updates to contributor_guide.md (#3806) (by Vissidarte-Herman)
- [Vulkan] Update AOT Loader support to new API (#3766) (by Gabriel H)
- [Doc] Tweak API docstrings (#3820) (by Ye Kuang)
- [ci] Use clang+Ninja to build Taichi on windows (#3735) (by Bob Cao)
- [LLVM] Remove the dependency of llvm-as (#3562) (by Tianshu Xu)
- [build] No need to build main executable (#3804) (by Frost Ming)
- [lang] Add parallel sort utility (#3790) (by Dunfan Lu)
- [misc] [bug] Fix legacy benchmarks/run.py (#3812) (by rocket)
- [refactor] Move CompiledFieldData to aot namespace. (#3797) (by Ailing)
- [docs] Update README.md to include command to install nightly. (#3809) (by Ailing)
- [Lang] Enforce single deterministic return in taichi kernels and functions (#3795) (by lin-hitonami)
- [bug] Fix typo in opengl codegen. (#3801) (by Ailing)
- [bug] Use NdarrayRwKeys for ndarray host reader & writer caching. (#3805) (by Ailing)
- [Bug] [opengl] Modify the implementation of norm_sqr() (#3803) (by Yi Xu)
- [bug] Create core folder if it doesn't exist. (#3799) (by Ailing)
- [doc] Update CONTRIBUTING.md to include contribution opportunities (#3794) (by Ye Kuang)
- [Doc] Refactored contribution guidelines (#3789) (by Vissidarte-Herman)
- [refactor] Move ti.lib to ti._lib and move ti.core to ti._lib.core (#3731) (by lin-hitonami)
- [Lang] Add "In" support in static scope (#3792) (by lin-hitonami)
- [ir] [llvm] Add offset_bytes_in_parent_cell to SNode (#3793) (by Yi Xu)
- [bug] [opengl] Avoid using new as variable name in generated glsl. (#3786) (by Ailing)
- [refactor] Move diagnose.py and cc_compose.py to tools/ (#3788) (by lin-hitonami)
- [misc] Increase the kernel number recorded by CUPTI (#3780) (by rocket)
- [vulkan] Try to enable Vulkan test in macOS presubmit (#3456) (by Bob Cao)
- [llvm] [bug] Support atomic min/max for unsigned int type (#3779) (by Chang Yu)
- [Lang] Support sparse solver datatype configuration (#3733) (by Peng Yu)
- [gui] Fix vector to fast image (#3778) (by Bob Cao)
- [Example] [bug] Fix constraint correction (#3740) (by Peng Yu)
- [refactor] Remove get_type_size() from JITSession (#3777) (by Yi Xu)
- [Lang] Fix pylint rule C0321 (multiple-statements) and C0325 (superfluous-parens). (#3762) (by kxxt)
- [misc] Remove more deprecated APIs (#3774) (by Zack Wu)
- [GUI] Fix gui.text crash bug (#3770) (by Peng Yu)
- Fix spirv types (#3772) (by Dunfan Lu)
- [Doc] Fix a misspelling (#3773) (by 张皓)
- [Lang] Enforce members of a matrix field to have same shape (#3761) (by Yi Xu)
- [bug] Enable int32 atomic ops for opengl backend. (#3760) (by Ailing)
- [gui] Fix ggui canvas.set_image (#3767) (by Dunfan Lu)
- [test] Enable ndarray tests (#3759) (by Bo Qiao)
- [Lang] Fix pylint rule W1309 (f-string-without-interpolation) (#3757) (by kxxt)
- [Android] Add initial support of the platform (#3755) (by Gabriel H)
- Update dev_install.md (#3758) (by Vissidarte-Herman)
- [misc] Speed-up builds by removing LLVM includes from llvm_program.h (#3756) (by Bob Cao)
- [Perf] Unnecessary assignment as it is redefined (#3753) (by skywf)
- [ci] Update performance monitoring (#3741) (by rocket)
- [opengl] Don't serialize ext_arr_access in aot. (#3749) (by Ailing)
- [refactor] Move ti.randn out of taichi.lang. (#3742) (by Ailing)
- [bug] Temporarily remove runtime_ usage in aot_module_builder. (#3746) (by Ailing)
- [misc] Update title check to be more robust. (#3747) (by Ailing)
- [Metal] Pass random seed to metal backend (#3724) (by Jian Zeng)
- [Vulkan] Add support of loading AOT modules and fields (#3703) (by Gabriel H)
- [refactor] Let build_xxx in ASTTransformer return node.ptr instead of node (#3695) (by lin-hitonami)
- [doc] Fix a heading level in syntax (#3738) (by Ran)
- [misc] Remove deprecated Python APIs (#3725) (by Zack Wu)
- [ci] Auto generate manylinux dockerfile (#3699) (by Bo Qiao)
- version bump (#3736) (by lin-hitonami)
- [misc] Support Clang build on windows (#3732) (by Bob Cao)
- [test] Refine the way to test the laplace example (#3721) (by Yi Xu)