From ac1f06f36f292d800a0f0b6b2f3b38ea66867fd4 Mon Sep 17 00:00:00 2001 From: Vissidarte-Herman <93570324+Vissidarte-Herman@users.noreply.github.com> Date: Tue, 17 May 2022 14:43:05 +0800 Subject: [PATCH] [Doc] Updated URL (#4990) * Updated URL * Updated URL * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .github/ISSUE_TEMPLATE/bug_report.md | 2 +- .github/ISSUE_TEMPLATE/config.yml | 2 +- .github/pull_request_template.md | 4 ++-- CMakeLists.txt | 2 +- CONTRIBUTING.md | 4 ++-- README.md | 6 +++--- benchmarks/microbenchmarks/_items.py | 2 +- build.ps1 | 4 ++-- python/taichi/_lib/utils.py | 3 +-- python/taichi/_logging.py | 4 ++-- python/taichi/lang/impl.py | 6 +++--- python/taichi/lang/kernel_impl.py | 4 ++-- python/taichi/lang/matrix.py | 4 ++-- python/taichi/lang/misc.py | 4 ++-- python/taichi/lang/snode.py | 2 +- python/taichi/profiler/kernel_metrics.py | 2 +- python/taichi/profiler/kernel_profiler.py | 4 ++-- python/taichi/types/annotations.py | 2 +- taichi/analysis/verify.cpp | 2 +- taichi/backends/cuda/cupti_toolkit.cpp | 4 ++-- taichi/gui/x11.cpp | 2 +- taichi/ir/snode.h | 2 +- taichi/system/traceback.cpp | 2 +- taichi/transforms/reverse_segments.cpp | 2 +- tests/python/test_fields_builder.py | 2 +- tests/python/test_simple_matrix_slice.py | 2 +- 26 files changed, 39 insertions(+), 40 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index ba245f01619f8..8800d1b66d44d 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -7,7 +7,7 @@ assignees: '' --- - + **Describe the bug** A clear and concise description of what the bug is, ideally within 20 words. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index eaddd6150ca49..e5c9d52124c3d 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -2,7 +2,7 @@ blank_issues_enabled: true contact_links: - name: Contributor Guideline - url: https://docs.taichi-lang.org/lang/articles/contributor_guide + url: https://docs.taichi-lang.org/docs/contributor_guide about: Please check this out if you'd like to contribute by opening a PR :) - name: Taichi Forum url: https://forum.taichi.graphics diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index b7f0ebaabc84d..4dd4981dfb48a 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -4,11 +4,11 @@ Related issue = # Thank you for your contribution! If it is your first time contributing to Taichi, please read our Contributor Guidelines: - https://docs.taichi-lang.org/lang/articles/contributor_guide + https://docs.taichi-lang.org/docs/contributor_guide - Please always prepend your PR title with tags such as [CUDA], [Lang], [Doc], [Example]. For a complete list of valid PR tags, please check out https://github.com/taichi-dev/taichi/blob/master/misc/prtags.json. - Use upper-case tags (e.g., [Metal]) for PRs that change public APIs. Otherwise, please use lower-case tags (e.g., [metal]). -- More details: https://docs.taichi-lang.org/lang/articles/contributor_guide#pr-title-format-and-tags +- More details: https://docs.taichi-lang.org/docs/contributor_guide#pr-title-format-and-tags - Please fill in the issue number that this PR relates to. - If your PR fixes the issue **completely**, use the `close` or `fixes` prefix so that GitHub automatically closes the issue when the PR is merged. For example, diff --git a/CMakeLists.txt b/CMakeLists.txt index 0be966f98e101..9cee806f27ea3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,7 +7,7 @@ cmake_minimum_required(VERSION 3.15) project(taichi) if (NOT DEFINED TI_VERSION_MAJOR) - message(WARNING "It seems that you are running cmake manually, which may cause issues. Please use setup.py to build taichi from source, see https://docs.taichi-lang.org/lang/articles/dev_install for more details.") + message(WARNING "It seems that you are running cmake manually, which may cause issues. Please use setup.py to build taichi from source, see https://docs.taichi-lang.org/docs/dev_install for more details.") set(TI_VERSION_MAJOR 0) set(TI_VERSION_MINOR 0) set(TI_VERSION_PATCH 0) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b0d3ad75cb08a..0ed8205c7f1b9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,12 +1,12 @@ # Contributing Guide -Thank you for your interest in contributing to Taichi! Please check out the [Contribution Guidelines](https://docs.taichi-lang.org/lang/articles/contributor_guide) for how to make a contribution. +Thank you for your interest in contributing to Taichi! Please check out the [Contribution Guidelines](https://docs.taichi-lang.org/docs/contributor_guide) for how to make a contribution. All contributors are expected to follow the [code of conduct](https://github.com/taichi-dev/taichi/blob/master/CODE_OF_CONDUCT.md). ## Developer installation -Taichi is developed mainly in C++17 and Python3. Please check out the [Developer Installation](https://docs.taichi-lang.org/lang/articles/dev_install) to build Taichi from source. Note that Taichi is LLVM-10.0.0 dependent and that we recommend installing [our pre-built LLVM libraries](https://docs.taichi-lang.org/lang/articles/dev_install#install-llvm) for your platform. +Taichi is developed mainly in C++17 and Python3. Please check out the [Developer Installation](https://docs.taichi-lang.org/docs/dev_install) to build Taichi from source. Note that Taichi is LLVM-10.0.0 dependent and that we recommend installing [our pre-built LLVM libraries](https://docs.taichi-lang.org/docs/dev_install#install-llvm) for your platform. ## Contribution opportunities diff --git a/README.md b/README.md index 17006bcf0f375..2102cb3d840dd 100644 --- a/README.md +++ b/README.md @@ -35,10 +35,10 @@ The language has broad applications spanning real-time physical simulation, numb ## Why Taichi? - Built around Python: Taichi shares almost the same syntax with Python, allowing you to write algorithms with minimal language barrier. It is also well integrated into the Python ecosystem, including NumPy and PyTorch. -- Flexibility: Taichi provides a set of generic data containers known as *SNode* (/ˈsnoʊd/), an effective mechanism for composing hierarchical, multi-dimensional fields. This can cover many use patterns in numerical simulation (e.g. [spatially sparse computing](https://docs.taichi-lang.org/lang/articles/sparse)). +- Flexibility: Taichi provides a set of generic data containers known as *SNode* (/ˈsnoʊd/), an effective mechanism for composing hierarchical, multi-dimensional fields. This can cover many use patterns in numerical simulation (e.g. [spatially sparse computing](https://docs.taichi-lang.org/docs/sparse)). - Performance: With the `@ti.kernel` decorator, Taichi's JIT compiler automatically compiles your Python functions into efficient GPU or CPU machine code for parallel execution. - Portability: Write your code once and run it everywhere. Currently, Taichi supports most mainstream GPU APIs, such as CUDA and Vulkan. -- ... and many more features! A cross-platform, Vulkan-based 3D visualizer, [differentiable programming](https://docs.taichi-lang.org/lang/articles/differentiable_programming), [quantized computation](https://github.com/taichi-dev/quantaichi) (experimental), etc. +- ... and many more features! A cross-platform, Vulkan-based 3D visualizer, [differentiable programming](https://docs.taichi-lang.org/docs/differentiable_programming), [quantized computation](https://github.com/taichi-dev/quantaichi) (experimental), etc. ## Getting Started @@ -123,7 +123,7 @@ See [Get started](https://docs.taichi-lang.org) for more information. ### Build from source -If you wish to try our our experimental features or build Taichi for your own environments, see [Developer installation](https://docs.taichi-lang.org/lang/articles/dev_install). +If you wish to try our our experimental features or build Taichi for your own environments, see [Developer installation](https://docs.taichi-lang.org/docs/dev_install). ## Documentation diff --git a/benchmarks/microbenchmarks/_items.py b/benchmarks/microbenchmarks/_items.py index c8b8651f322ea..ed24fe8cd264d 100644 --- a/benchmarks/microbenchmarks/_items.py +++ b/benchmarks/microbenchmarks/_items.py @@ -67,7 +67,7 @@ def __init__(self): class MathOps(BenchmarkItem): name = 'math_op' - #reference: https://docs.taichi-lang.org/lang/articles/operator + #reference: https://docs.taichi-lang.org/docs/operator def __init__(self): self._items = { # Trigonometric diff --git a/build.ps1 b/build.ps1 index fdd90f4544b0c..9b12f770a79d8 100644 --- a/build.ps1 +++ b/build.ps1 @@ -110,7 +110,7 @@ if (-not $LlvmDir) { } if (-not $LlvmDir -or -not (Test-Path $LlvmDir)) { throw "LLVM cannot be found in local environment and the script failed to download a prebuilt archive. " + - "Please follow the instructions at 'https://docs.taichi-lang.org/lang/articles/dev_install' to manually configure LLVM for Taichi." + "Please follow the instructions at 'https://docs.taichi-lang.org/docs/dev_install' to manually configure LLVM for Taichi." } else { $LlvmDir = (Resolve-Path $LlvmDir).Path; $env:LLVM_DIR = $LlvmDir @@ -124,7 +124,7 @@ if (-not $ClangDir) { } if (-not $ClangDir -or -not (Test-Path $ClangDir)) { throw "Clang cannot be found in local environment and the script failed to download a prebuilt archive. " + - "Please follow the instructions at 'https://docs.taichi-lang.org/lang/articles/dev_install' to manually configure Clang for Taichi." + "Please follow the instructions at 'https://docs.taichi-lang.org/docs/dev_install' to manually configure Clang for Taichi." } else { $ClangDir = (Resolve-Path $ClangDir).Path; Write-Host "Using Clang at '$ClangDir'." diff --git a/python/taichi/_lib/utils.py b/python/taichi/_lib/utils.py index 542dde54e6c9c..364fd86345278 100644 --- a/python/taichi/_lib/utils.py +++ b/python/taichi/_lib/utils.py @@ -46,8 +46,7 @@ def import_ti_core(): if isinstance(e, ImportError): print(Fore.YELLOW + "Share object taichi_core import failed, " "check this page for possible solutions:\n" - "https://docs.taichi-lang.org/lang/articles/install" + - Fore.RESET) + "https://docs.taichi-lang.org/docs/install" + Fore.RESET) if get_os_name() == 'win': # pylint: disable=E1101 e.msg += '\nConsider installing Microsoft Visual C++ Redistributable: https://aka.ms/vs/16/release/vc_redist.x64.exe' diff --git a/python/taichi/_logging.py b/python/taichi/_logging.py index b58c1b5b76f66..596d32aae4504 100644 --- a/python/taichi/_logging.py +++ b/python/taichi/_logging.py @@ -36,7 +36,7 @@ def set_logging_level(level): also be effective. For example if `level` is set to 'warn', then the levels below it, which are 'error' and 'critical' in this case, will also be effective. - See also https://docs.taichi-lang.org/lang/articles/utilities#logging. + See also https://docs.taichi-lang.org/docs/utilities#logging. Args: level (str): Logging level. @@ -53,7 +53,7 @@ def is_logging_effective(level): All levels below current level will be effective. The default level is 'info'. - See also https://docs.taichi-lang.org/lang/articles/utilities#logging. + See also https://docs.taichi-lang.org/docs/utilities#logging. Args: level (str): The string represents logging level. \ diff --git a/python/taichi/lang/impl.py b/python/taichi/lang/impl.py index d9e02ee2e6131..90cfc7446d3af 100644 --- a/python/taichi/lang/impl.py +++ b/python/taichi/lang/impl.py @@ -482,7 +482,7 @@ def __repr__(self): root = _Root() """Root of the declared Taichi :func:`~taichi.lang.impl.field`s. -See also https://docs.taichi-lang.org/lang/articles/layout +See also https://docs.taichi-lang.org/docs/layout Example:: @@ -524,7 +524,7 @@ def field(dtype, shape=None, name="", offset=None, needs_grad=False): actually defined. The data in a Taichi field can be directly accessed by a Taichi :func:`~taichi.lang.kernel_impl.kernel`. - See also https://docs.taichi-lang.org/lang/articles/field + See also https://docs.taichi-lang.org/docs/field Args: dtype (DataType): data type of the field. @@ -779,7 +779,7 @@ def static(x, *xs): `static()` is what enables the so-called metaprogramming in Taichi. It is in many ways similar to ``constexpr`` in C++. - See also https://docs.taichi-lang.org/lang/articles/meta. + See also https://docs.taichi-lang.org/docs/meta. Args: x (Any): an expression to be evaluated diff --git a/python/taichi/lang/kernel_impl.py b/python/taichi/lang/kernel_impl.py index 418b51bb8bba3..1f689717f42a2 100644 --- a/python/taichi/lang/kernel_impl.py +++ b/python/taichi/lang/kernel_impl.py @@ -892,7 +892,7 @@ def kernel(fn): Kernel's gradient kernel would be generated automatically by the AutoDiff system. - See also https://docs.taichi-lang.org/lang/articles/syntax#kernel. + See also https://docs.taichi-lang.org/docs/syntax#kernel. Args: fn (Callable): the Python function to be decorated @@ -941,7 +941,7 @@ def data_oriented(cls): To allow for modularized code, Taichi provides this decorator so that Taichi kernels can be defined inside a class. - See also https://docs.taichi-lang.org/lang/articles/odop + See also https://docs.taichi-lang.org/docs/odop Example:: diff --git a/python/taichi/lang/matrix.py b/python/taichi/lang/matrix.py index 2cd17d3064e7d..a79d28ce118e7 100644 --- a/python/taichi/lang/matrix.py +++ b/python/taichi/lang/matrix.py @@ -134,7 +134,7 @@ def _linearize_entry_id(self, *args): 'If you want to *iterate through matrix elements*, use a static range:\n' ' for i in ti.static(range(3)):\n' ' print(i, "-th component is", vec[i])\n' - 'See https://docs.taichi-lang.org/lang/articles/meta#when-to-use-tistatic-with-for-loops for more details.' + 'See https://docs.taichi-lang.org/docs/meta#when-to-use-tistatic-with-for-loops for more details.' 'Or turn on ti.init(..., dynamic_index=True) to support indexing with variables!' ) assert 0 <= args[0] < self.n, \ @@ -455,7 +455,7 @@ def __init__(self, arr, dt=None, suppress_warning=False, is_ref=False): ' So the compilation time could be extremely long if the matrix size is too big.' ' You may use a field to store a large matrix like this, e.g.:\n' f' x = ti.field(ti.f32, ({self.n}, {self.m})).\n' - ' See https://docs.taichi-lang.org/lang/articles/field#matrix-size' + ' See https://docs.taichi-lang.org/docs/field#matrix-size' ' for more details.', UserWarning, stacklevel=2) diff --git a/python/taichi/lang/misc.py b/python/taichi/lang/misc.py index 0bfebb2da5973..0426dc62b2c2d 100644 --- a/python/taichi/lang/misc.py +++ b/python/taichi/lang/misc.py @@ -341,7 +341,7 @@ def init(arch=None, * ``cpu_max_num_threads`` (int): Sets the number of threads used by the CPU thread pool. * ``debug`` (bool): Enables the debug mode, under which Taichi does a few more things like boundary checks. * ``print_ir`` (bool): Prints the CHI IR of the Taichi kernels. - * ``packed`` (bool): Enables the packed memory layout. See https://docs.taichi-lang.org/lang/articles/layout. + * ``packed`` (bool): Enables the packed memory layout. See https://docs.taichi-lang.org/docs/layout. """ # Check version for users every 7 days if not disabled by users. _version_check.start_version_check_thread() @@ -476,7 +476,7 @@ def no_activate(*args): def block_local(*args): """Hints Taichi to cache the fields and to enable the BLS optimization. - Please visit https://docs.taichi-lang.org/lang/articles/performance + Please visit https://docs.taichi-lang.org/docs/performance for how BLS is used. Args: diff --git a/python/taichi/lang/snode.py b/python/taichi/lang/snode.py index 3b0c7460f3958..81c046af9f3a4 100644 --- a/python/taichi/lang/snode.py +++ b/python/taichi/lang/snode.py @@ -11,7 +11,7 @@ class SNode: For more information on Taichi's SNode system, please check out these references: - * https://docs.taichi-lang.org/lang/articles/sparse + * https://docs.taichi-lang.org/docs/sparse * https://yuanming.taichi.graphics/publication/2019-taichi/taichi-lang.pdf Arg: diff --git a/python/taichi/profiler/kernel_metrics.py b/python/taichi/profiler/kernel_metrics.py index 2e5bbd7036959..dd47ad98fcd57 100644 --- a/python/taichi/profiler/kernel_metrics.py +++ b/python/taichi/profiler/kernel_metrics.py @@ -44,7 +44,7 @@ class CuptiMetric: >>> ti.profiler.print_kernel_profiler_info('trace') Note: - For details about using CUPTI in Taichi, please visit https://docs.taichi-lang.org/lang/articles/profiler#advanced-mode. + For details about using CUPTI in Taichi, please visit https://docs.taichi-lang.org/docs/profiler#advanced-mode. """ def __init__(self, name='', diff --git a/python/taichi/profiler/kernel_profiler.py b/python/taichi/profiler/kernel_profiler.py index 5dea618b1a286..6bdf5de97f069 100644 --- a/python/taichi/profiler/kernel_profiler.py +++ b/python/taichi/profiler/kernel_profiler.py @@ -46,7 +46,7 @@ class KernelProfiler: This mode is only available for the CUDA backend with CUPTI toolkit, i.e. you need ``ti.init(kernel_profiler=True, arch=ti.cuda)``. Note: - For details about using CUPTI in Taichi, please visit https://docs.taichi-lang.org/lang/articles/profiler#advanced-mode. + For details about using CUPTI in Taichi, please visit https://docs.taichi-lang.org/docs/profiler#advanced-mode. """ def __init__(self): self._profiling_mode = False @@ -388,7 +388,7 @@ def print_kernel_profiler_info(mode='count'): Currently the result of `KernelProfiler` could be incorrect on OpenGL backend due to its lack of support for `ti.sync()`. - For advanced mode of `KernelProfiler`, please visit https://docs.taichi-lang.org/lang/articles/profiler#advanced-mode. + For advanced mode of `KernelProfiler`, please visit https://docs.taichi-lang.org/docs/profiler#advanced-mode. """ get_default_kernel_profiler().print_info(mode) diff --git a/python/taichi/types/annotations.py b/python/taichi/types/annotations.py index 4476fe628d5f0..491da6b529ee7 100644 --- a/python/taichi/types/annotations.py +++ b/python/taichi/types/annotations.py @@ -2,7 +2,7 @@ class Template: """Type annotation for template kernel parameter. Useful for passing parameters to kernels by reference. - See also https://docs.taichi-lang.org/lang/articles/meta. + See also https://docs.taichi-lang.org/docs/meta. Args: tensor (Any): unused diff --git a/taichi/analysis/verify.cpp b/taichi/analysis/verify.cpp index cc9df7fde4860..31fbbea3ac052 100644 --- a/taichi/analysis/verify.cpp +++ b/taichi/analysis/verify.cpp @@ -49,7 +49,7 @@ class IRVerifier : public BasicStmtVisitor { found, "IR broken: stmt {} {} cannot have operand {} {}." " If you are using autodiff, please check" - " https://docs.taichi-lang.org/lang/articles/" + " https://docs.taichi-lang.org/docs/" "differences_between_taichi_and_python_programs" " If it doesn't help, please report this bug by opening an issue at" " https://github.com/taichi-dev/taichi to help us improve." diff --git a/taichi/backends/cuda/cupti_toolkit.cpp b/taichi/backends/cuda/cupti_toolkit.cpp index 02698e9857e70..dda7a27b0f707 100644 --- a/taichi/backends/cuda/cupti_toolkit.cpp +++ b/taichi/backends/cuda/cupti_toolkit.cpp @@ -39,7 +39,7 @@ bool check_cupti_availability() { "7.0 , fallback to default kernel profiler"); TI_WARN( "See also: " - "https://docs.taichi-lang.org/lang/articles/profiler"); + "https://docs.taichi-lang.org/docs/profiler"); return false; } return true; @@ -106,7 +106,7 @@ bool check_cupti_privileges() { "================================================================="); TI_WARN( "See also: " - "https://docs.taichi-lang.org/lang/articles/profiler"); + "https://docs.taichi-lang.org/docs/profiler"); return false; } // For other errors , CuptiToolkit::init_cupti() will send error message. diff --git a/taichi/gui/x11.cpp b/taichi/gui/x11.cpp index da82e5b08fcf5..97e268fe16d33 100644 --- a/taichi/gui/x11.cpp +++ b/taichi/gui/x11.cpp @@ -151,7 +151,7 @@ void GUI::create_window() { "Taichi fails to create a window." " This is probably due to the lack of an X11 GUI environment." " Consider using the `ti.GUI(show_gui=False)` option, see" - " https://docs.taichi-lang.org/lang/articles/gui_system"); + " https://docs.taichi-lang.org/docs/gui_system"); visual = DefaultVisual(display, 0); window = XCreateSimpleWindow((Display *)display, RootWindow((Display *)display, 0), diff --git a/taichi/ir/snode.h b/taichi/ir/snode.h index b6698574c8c32..a3e7f55987f0f 100644 --- a/taichi/ir/snode.h +++ b/taichi/ir/snode.h @@ -119,7 +119,7 @@ class SNode { std::string name; // Product of the |shape| of all the activated axes identified by // |extractors|. - // See https://docs.taichi-lang.org/lang/articles/internal for terms + // See https://docs.taichi-lang.org/docs/internal for terms // like cell and container. int64 num_cells_per_container{1}; int total_num_bits{0}; diff --git a/taichi/system/traceback.cpp b/taichi/system/traceback.cpp index 5ba9ae8a44975..e2e0e4d189f86 100644 --- a/taichi/system/traceback.cpp +++ b/taichi/system/traceback.cpp @@ -370,7 +370,7 @@ void print_traceback() { fmt::print( fg(fmt::color::orange), "\nInternal error occurred. Check out this page for possible solutions:\n" - "https://docs.taichi-lang.org/lang/articles/install\n"); + "https://docs.taichi-lang.org/docs/install\n"); } TI_NAMESPACE_END diff --git a/taichi/transforms/reverse_segments.cpp b/taichi/transforms/reverse_segments.cpp index c6148746a7c47..4065b0278af96 100644 --- a/taichi/transforms/reverse_segments.cpp +++ b/taichi/transforms/reverse_segments.cpp @@ -70,7 +70,7 @@ void reverse_segments(IRNode *root) { "Mixed usage of for-loops and statements without looping. \n" "Please split them into two kernels " "and check the documentation for more details:\n" - "https://docs.taichi-lang.org/lang/articles/" + "https://docs.taichi-lang.org/docs/" "differentiable_programming"); } for (auto &sblock : statement_blocks) { diff --git a/tests/python/test_fields_builder.py b/tests/python/test_fields_builder.py index 0e95bdb93d8e1..590fc2986e27a 100644 --- a/tests/python/test_fields_builder.py +++ b/tests/python/test_fields_builder.py @@ -139,7 +139,7 @@ def assign_field_multiple_struct_for(): # We currently only consider data types that all platforms support. -# See https://docs.taichi-lang.org/lang/articles/type#primitive-types for more details. +# See https://docs.taichi-lang.org/docs/type#primitive-types for more details. @pytest.mark.parametrize('test_1d_size', [1, 10, 100]) @pytest.mark.parametrize('field_type', [ti.f32, ti.i32]) @test_utils.test(arch=[ti.cpu, ti.cuda, ti.vulkan, ti.metal]) diff --git a/tests/python/test_simple_matrix_slice.py b/tests/python/test_simple_matrix_slice.py index 68f1461b6b1de..4bd213e148cf3 100644 --- a/tests/python/test_simple_matrix_slice.py +++ b/tests/python/test_simple_matrix_slice.py @@ -62,7 +62,7 @@ def test_one_col_slice() -> ti.types.matrix(1, 3, dtype=ti.i32): r'If you want to \*iterate through matrix elements\*, use a static range:\n' r' for i in ti.static\(range\(3\)\):\n' r' print\(i, "-th component is", vec\[i\]\)\n' - r'See https://docs.taichi-lang.org/lang/articles/meta#when-to-use-tistatic-with-for-loops for more details.' + r'See https://docs.taichi-lang.org/docs/meta#when-to-use-tistatic-with-for-loops for more details.' r'Or turn on ti.init\(..., dynamic_index=True\) to support indexing with variables!' ): test_one_col_slice()