Commit Graph

2152 Commits (98e75af2a88325a8018d46e1a56f4e8648e8b3e1)
 

Author SHA1 Message Date
Sean Silva 98e75af2a8
update PyTorch version to 2.1.0.dev20230813 (#2394)
- torch version: 2.1.0.dev20230813
 - torch commit hash: 3748ee4a8c4032dac08bd2de0ebf039ad22e0d1e
 - torchvision version: 0.16.0.dev20230813

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>
2023-08-13 08:03:59 -07:00
Sean Silva 17f1300dde
update PyTorch version to 2.1.0.dev20230812 (#2393)
- torch version: 2.1.0.dev20230812
 - torch commit hash: c9397a7bc833cdfdf64aa023631ae5e1c7e9cee4
 - torchvision version: 0.16.0.dev20230812

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>
2023-08-12 07:57:42 -07:00
Ramiro Leal-Cavazos ff762100b8
Add handling of namespaces to library generator (#2391)
When using custom ops, sometimes PyTorch will insert namespaces to the
abstract interpretation function name in the format:
`__torch__.{namespace_1}.{namespace_2}...{op_name}`.  The extra
namespaces are not part of the abstract interpretation function name,
so it needs to be removed before generating the library of MLIR
snippets of abstract interpretation functions. This commit adds
support for removing the namespace information.
2023-08-11 09:56:19 -07:00
Sean Silva 23d7821afa
update PyTorch version to 2.1.0.dev20230811 (#2392)
- torch version: 2.1.0.dev20230811
 - torch commit hash: 422297f87fc25191bb392486c4bb8d25c4785d15
 - torchvision version: 0.16.0.dev20230811

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>
2023-08-11 09:45:18 -07:00
Vivek Khandelwal e61ef1ee54 [MLIR][TORCH] Add support for aten._unsafe_index_put.hacked_twin op
Signed-Off By: Vivek Khandelwal <vivek@nod-labs.com>
2023-08-11 08:57:01 +05:30
Vivek Khandelwal f0a8f273f7 build: manually update PyTorch version
Set PyTorch and TorchVision version to nightly release 2023-08-10.

Signed-Off By: Vivek Khandelwal <vivek@nod-labs.com>
2023-08-10 21:59:20 +05:30
Ramiro Leal-Cavazos 3854e9e5c3 [build] Update llvm tag to f580901d
This commit updates the `llvm-project` and `mlir-hlo` submodules to
commits:

llvm-project: f580901d5d30e37755212f1c09e5b587587fbfeb
mlir-hlo: 503736d156c25022813c51cbdbe3b862d67a6916
2023-08-10 09:59:52 +05:30
Sean Silva 574450687d
update PyTorch version to 2.1.0.dev20230808 (#2385)
- torch version: 2.1.0.dev20230808
 - torch commit hash: c01a41cdec4414d8853c8474ddcaf2bd6990e5c8
 - torchvision version: 0.16.0.dev20230808

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>
2023-08-08 10:05:21 -07:00
Vivek Khandelwal ee6c87ef5b [MLIR][TORCH] Add support for dtype arg for softmax.int op
Signed-Off By: Vivek Khandelwal <vivek@nod-labs.com>
2023-08-08 21:54:47 +05:30
Jiawei Wu 4c12aceb81
[Torch-Dialect] add canonicalizer for prim::ListConstruct op (#2306)
[Torch-Dialect] add canonicalizer for prim::ListConstruct op
2023-08-08 10:28:11 +08:00
Sean Silva d9e3553b68
update PyTorch version to 2.1.0.dev20230807 (#2382)
- torch version: 2.1.0.dev20230807
 - torch commit hash: 5e438d59cda5546de9eae4d89181a458ead54c59
 - torchvision version: 0.16.0.dev20230807

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>
2023-08-07 08:05:47 -07:00
Sean Silva d13b7534fd
update PyTorch version to 2.1.0.dev20230806 (#2380)
- torch version: 2.1.0.dev20230806
 - torch commit hash: a8638d61c8b88ab67a908c02ec91fa4186121265
 - torchvision version: 0.16.0.dev20230806

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>
2023-08-06 08:04:50 -07:00
Sean Silva 9a1fae97b1
update PyTorch version to 2.1.0.dev20230805 (#2379)
- torch version: 2.1.0.dev20230805
 - torch commit hash: be75ecac1bc5a25cbd60e881116ca784d04be1f3
 - torchvision version: 0.16.0.dev20230805

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>
2023-08-05 08:09:01 -07:00
JianzheXiao 38b049eb1a
[Torch Dialect] add support for adaptive_avgpool_1d (#2342)
* [MLIR][TORCH] Fix aten.cumsum lowering for int32 input (#2351)

Signed-Off By: Vivek Khandelwal <vivek@nod-labs.com>

[Stablehlo] Add converter to stablehlo for aten.(Int,Float,Bool).Tensor op (#2340)

[Stablehlo] Add converter to stablehlo for aten.(Int,Float,Bool).Tensor op and configure crashing e2e sets for stablehlo backend.

update PyTorch version to 2.1.0.dev20230729 (#2354)

- torch version: 2.1.0.dev20230729
 - torch commit hash: b638df0afb83572724032c824c64e481bb4499a0
 - torchvision version: 0.16.0.dev20230729

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>

update PyTorch version to 2.1.0.dev20230730 (#2356)

- torch version: 2.1.0.dev20230730
 - torch commit hash: 0ff243ff350268cc98fe03fa6364375ee2824742
 - torchvision version: 0.16.0.dev20230730

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>

update PyTorch version to 2.1.0.dev20230731 (#2359)

- torch version: 2.1.0.dev20230731
 - torch commit hash: 6298ac688f8caafe30d71ff2ea2e20fbb32065c7
 - torchvision version: 0.16.0.dev20230731

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>

LTC->MLIR Debug Info support (#1922)

* LTC->MLIR Debug Info support

* SW-95317 Propagate Lazy->Jit->MLIR scope name.

* Enhance location information based on op names

Currently, the location information attached to the ops just considers
the filename, line number and column number. Attaching operation name
would help identify the type of computation by just looking at the
profile of execution.

* Update locations logic; updated debug-info.py test

* Use {scope}/{op_name} format to track names by default

---------

Co-authored-by: Gleb Kazantaev <gleb.kazantaev@cerebras.net>
Co-authored-by: Mark Browning <mark@cerebras.net>
Co-authored-by: Vimal Patel <vimal@polymagelabs.com>

build: update llvm tag to 41895843

Summary of changes:
- Update tags
  llvm: 41895843b5915bb78e9d02aa711fa10f7174db43
  mhlo: 4726d31f7025da66de0dea709bd56c462edb83c2

Signed-Off By: Vivek Khandelwal <vivek@nod-labs.com>

update PyTorch version to 2.1.0.dev20230802 (#2366)

- torch version: 2.1.0.dev20230802
 - torch commit hash: c89b16917755c2abbef7b6420e340baf9ae8089e
 - torchvision version: 0.16.0.dev20230802

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>

Change Python version from 3.10 to 3.11 in installation instructions (#2370)

Add CITATION file (#2371)

Add packaging as an install dependency (#2369)

Needed by `torch_mlir._version`. Resolves #2368.

[Torch Dialect] emit aten.masked_scatter and aten.masked_scatter_ op (#2358)

* [Torch Dialect] emit aten.masked_scatter and aten.masked_scatter_ op

update PyTorch version to 2.1.0.dev20230803 (#2372)

- torch version: 2.1.0.dev20230803
 - torch commit hash: f89c73be3a3e8274d025ac46a33a780853841c9e
 - torchvision version: 0.16.0.dev20230803

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>

Prevent failed stable CI job from cancelling nightly jobs (#2373)

The CI jobs that use stable PyTorch are currently not required to pass
in order for a patch to get merged in `main`. This commit makes sure
that if a CI job for stable PyTorch fails, it does not cancel the
other required jobs.

[Torch Dialect] emit aten.tile op and decompose it into aten.repeat (#2355)

update

update xfail sets

update xfail_sets

update

fix xfail_sets

update:

update

update:

update

parent 22e88d523b1970b2e904eb5421d49d987a3d255e
author jianzhe.xiao <jianzhe.xiao@bytedance.com> 1691114110 +0800
committer jianzhe.xiao <jianzhe.xiao@bytedance.com> 1691114119 +0800

[Stablehlo] Add converter to stablehlo for aten.(Int,Float,Bool).Tensor op (#2340)

[Stablehlo] Add converter to stablehlo for aten.(Int,Float,Bool).Tensor op and configure crashing e2e sets for stablehlo backend.

update PyTorch version to 2.1.0.dev20230729 (#2354)

- torch version: 2.1.0.dev20230729
 - torch commit hash: b638df0afb83572724032c824c64e481bb4499a0
 - torchvision version: 0.16.0.dev20230729

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>

update PyTorch version to 2.1.0.dev20230730 (#2356)

- torch version: 2.1.0.dev20230730
 - torch commit hash: 0ff243ff350268cc98fe03fa6364375ee2824742
 - torchvision version: 0.16.0.dev20230730

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>

update PyTorch version to 2.1.0.dev20230731 (#2359)

- torch version: 2.1.0.dev20230731
 - torch commit hash: 6298ac688f8caafe30d71ff2ea2e20fbb32065c7
 - torchvision version: 0.16.0.dev20230731

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>

LTC->MLIR Debug Info support (#1922)

* LTC->MLIR Debug Info support

* SW-95317 Propagate Lazy->Jit->MLIR scope name.

* Enhance location information based on op names

Currently, the location information attached to the ops just considers
the filename, line number and column number. Attaching operation name
would help identify the type of computation by just looking at the
profile of execution.

* Update locations logic; updated debug-info.py test

* Use {scope}/{op_name} format to track names by default

---------

Co-authored-by: Gleb Kazantaev <gleb.kazantaev@cerebras.net>
Co-authored-by: Mark Browning <mark@cerebras.net>
Co-authored-by: Vimal Patel <vimal@polymagelabs.com>

build: update llvm tag to 41895843

Summary of changes:
- Update tags
  llvm: 41895843b5915bb78e9d02aa711fa10f7174db43
  mhlo: 4726d31f7025da66de0dea709bd56c462edb83c2

Signed-Off By: Vivek Khandelwal <vivek@nod-labs.com>

update PyTorch version to 2.1.0.dev20230802 (#2366)

- torch version: 2.1.0.dev20230802
 - torch commit hash: c89b16917755c2abbef7b6420e340baf9ae8089e
 - torchvision version: 0.16.0.dev20230802

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>

Change Python version from 3.10 to 3.11 in installation instructions (#2370)

Add CITATION file (#2371)

Add packaging as an install dependency (#2369)

Needed by `torch_mlir._version`. Resolves #2368.

[Torch Dialect] emit aten.masked_scatter and aten.masked_scatter_ op (#2358)

* [Torch Dialect] emit aten.masked_scatter and aten.masked_scatter_ op

update PyTorch version to 2.1.0.dev20230803 (#2372)

- torch version: 2.1.0.dev20230803
 - torch commit hash: f89c73be3a3e8274d025ac46a33a780853841c9e
 - torchvision version: 0.16.0.dev20230803

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>

Prevent failed stable CI job from cancelling nightly jobs (#2373)

The CI jobs that use stable PyTorch are currently not required to pass
in order for a patch to get merged in `main`. This commit makes sure
that if a CI job for stable PyTorch fails, it does not cancel the
other required jobs.

[Torch Dialect] emit aten.tile op and decompose it into aten.repeat (#2355)

update

update xfail sets

update xfail_sets

update

fix xfail_sets

update:

update

update:

add support for adaptive_pool_id

update xfail sets

update xfail_sets

update

fix xfail_sets

update:

update:

* update

---------

Co-authored-by: Vivek Khandelwal <vivekkhandelwal1424@gmail.com>
2023-08-05 07:48:09 +08:00
Ramiro Leal-Cavazos 2fbb4c79f0
Fix "unused variable 'outType'" warning (#2378) 2023-08-05 07:41:01 +08:00
Sean Silva 598d690710
update PyTorch version to 2.1.0.dev20230804 (#2377)
- torch version: 2.1.0.dev20230804
 - torch commit hash: 4734e4d60f331bfde1b33cfe8ce91de50c5ce2e1
 - torchvision version: 0.16.0.dev20230804

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>
2023-08-04 11:22:42 -07:00
Jiawei Wu 20a2b68ed6
[Torch Dialect] emit aten.tile op and decompose it into aten.repeat (#2355) 2023-08-04 09:05:34 +08:00
Ramiro Leal-Cavazos c0d8248ec7
Prevent failed stable CI job from cancelling nightly jobs (#2373)
The CI jobs that use stable PyTorch are currently not required to pass
in order for a patch to get merged in `main`. This commit makes sure
that if a CI job for stable PyTorch fails, it does not cancel the
other required jobs.
2023-08-03 14:58:57 -07:00
Sean Silva 8d4f4cb104
update PyTorch version to 2.1.0.dev20230803 (#2372)
- torch version: 2.1.0.dev20230803
 - torch commit hash: f89c73be3a3e8274d025ac46a33a780853841c9e
 - torchvision version: 0.16.0.dev20230803

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>
2023-08-03 11:49:30 -07:00
Jiawei Wu 6db92d1b14
[Torch Dialect] emit aten.masked_scatter and aten.masked_scatter_ op (#2358)
* [Torch Dialect] emit aten.masked_scatter and aten.masked_scatter_ op
2023-08-03 16:21:14 +08:00
Jack Wolfard 48f4e8f673
Add packaging as an install dependency (#2369)
Needed by `torch_mlir._version`. Resolves #2368.
2023-08-02 22:25:11 -07:00
Ramiro Leal-Cavazos 22cb0063d6
Add CITATION file (#2371) 2023-08-02 14:36:15 -07:00
Ramiro Leal-Cavazos 68f5201b7c
Change Python version from 3.10 to 3.11 in installation instructions (#2370) 2023-08-02 14:35:40 -07:00
Sean Silva ca1f0158b3
update PyTorch version to 2.1.0.dev20230802 (#2366)
- torch version: 2.1.0.dev20230802
 - torch commit hash: c89b16917755c2abbef7b6420e340baf9ae8089e
 - torchvision version: 0.16.0.dev20230802

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>
2023-08-02 09:37:14 -07:00
Vivek Khandelwal a374c39106 build: update llvm tag to 41895843
Summary of changes:
- Update tags
  llvm: 41895843b5915bb78e9d02aa711fa10f7174db43
  mhlo: 4726d31f7025da66de0dea709bd56c462edb83c2

Signed-Off By: Vivek Khandelwal <vivek@nod-labs.com>
2023-08-02 21:18:14 +05:30
Gleb Kazantaev fb52a73cbe
LTC->MLIR Debug Info support (#1922)
* LTC->MLIR Debug Info support

* SW-95317 Propagate Lazy->Jit->MLIR scope name.

* Enhance location information based on op names

Currently, the location information attached to the ops just considers
the filename, line number and column number. Attaching operation name
would help identify the type of computation by just looking at the
profile of execution.

* Update locations logic; updated debug-info.py test

* Use {scope}/{op_name} format to track names by default

---------

Co-authored-by: Gleb Kazantaev <gleb.kazantaev@cerebras.net>
Co-authored-by: Mark Browning <mark@cerebras.net>
Co-authored-by: Vimal Patel <vimal@polymagelabs.com>
2023-08-02 10:29:11 -04:00
Sean Silva 4c24472dea
update PyTorch version to 2.1.0.dev20230731 (#2359)
- torch version: 2.1.0.dev20230731
 - torch commit hash: 6298ac688f8caafe30d71ff2ea2e20fbb32065c7
 - torchvision version: 0.16.0.dev20230731

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>
2023-07-31 07:54:05 -07:00
Sean Silva 5be26a7e0b
update PyTorch version to 2.1.0.dev20230730 (#2356)
- torch version: 2.1.0.dev20230730
 - torch commit hash: 0ff243ff350268cc98fe03fa6364375ee2824742
 - torchvision version: 0.16.0.dev20230730

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>
2023-07-30 07:53:47 -07:00
Sean Silva fbdcf1e3c1
update PyTorch version to 2.1.0.dev20230729 (#2354)
- torch version: 2.1.0.dev20230729
 - torch commit hash: b638df0afb83572724032c824c64e481bb4499a0
 - torchvision version: 0.16.0.dev20230729

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>
2023-07-29 07:38:05 -07:00
Jiawei Wu 16923fdbd2
[Stablehlo] Add converter to stablehlo for aten.(Int,Float,Bool).Tensor op (#2340)
[Stablehlo] Add converter to stablehlo for aten.(Int,Float,Bool).Tensor op and configure crashing e2e sets for stablehlo backend.
2023-07-29 21:55:49 +08:00
Vivek Khandelwal 0109bf705b
[MLIR][TORCH] Fix aten.cumsum lowering for int32 input (#2351)
Signed-Off By: Vivek Khandelwal <vivek@nod-labs.com>
2023-07-28 09:45:12 -07:00
Sean Silva c19fda4f17
update PyTorch version to 2.1.0.dev20230728 (#2353)
- torch version: 2.1.0.dev20230728
 - torch commit hash: eb5cb724fec897b866fd3a05b0c67ab9b23eeb96
 - torchvision version: 0.16.0.dev20230728

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>
2023-07-28 07:55:48 -07:00
Sean Silva 6aeb1f112f
update PyTorch version to 2.1.0.dev20230727 (#2352)
- torch version: 2.1.0.dev20230727
 - torch commit hash: 8a24a912a5f545d18059b59629aa3598f3783f25
 - torchvision version: 0.16.0.dev20230727

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>
2023-07-27 08:37:51 -07:00
Yuanqiang Liu c7c59b540e
[Stablehlo] support dynamic shape when convert aten.fill.Scalar (#2349) 2023-07-27 18:35:25 +08:00
Sean Silva 991eba2b51
update PyTorch version to 2.1.0.dev20230726 (#2348)
- torch version: 2.1.0.dev20230726
 - torch commit hash: 964a13b3dfbe583fa213fdca12b4a1732b1bb4e6
 - torchvision version: 0.16.0.dev20230726

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>
2023-07-26 11:12:21 -07:00
Sean Silva c9f2e8366b
update PyTorch version to 2.1.0.dev20230725 (#2341)
- torch version: 2.1.0.dev20230725
 - torch commit hash: 153afbda4b53928e5531f065c02fde1a29f2040a
 - torchvision version: 0.16.0.dev20230725

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>
2023-07-25 09:43:31 -07:00
Gaurav Shukla 398fa0ef5a build: update llvm tag to 4592543a01609fe
- update llvm tag to 4592543a01609feb4b3c19e81a9d54743e15e329
- mhlo now points to f6615343fdab2c74bebd23c78366cf097f9a72df

Signed-Off-by: Gaurav Shukla <gaurav@nod-labs.com>
2023-07-25 21:15:44 +05:30
Matthias Gehre 0a67411719
test/CAPI/CMakeLists.txt: Depend on FileCheck (#2329)
I saw test failing when FileCheck wasn't already build
2023-07-25 10:11:55 +02:00
Matthias Gehre c56cb531d5
Ignore constants in the legality error (#2328) 2023-07-25 10:11:40 +02:00
JianzheXiao 31ef08b63d
[Stablehlo]Add support for AvgPool1dOp (#2268)
* Add support for AvgPool1d

* Update AbstractInterpLibrary

* support avgpool1d in linalg

* refactored code

* fix nit problem
2023-07-25 14:09:53 +08:00
Jiawei Wu d57f67e7f8
[Torch Dialect] emit aten.nonzero, aten.nonzero_numpy, aten.nonzero_static op (#2338)
By the way, this PR also adds the missing shape function for aten.masked_select.
2023-07-25 09:01:19 +08:00
Ramiro Leal-Cavazos 4a96e716c0
Use `register_buffer` to make `Add_Module` test work on lazy tensor (#2332)
Doing `module.to('lazy')` only moves the module member tensors to the
device if they are created with `self.register_buffer` or
`self.register_parameter`. Since the `self.tensor` tensor in
`Add_Module` test is currently not created using the `self.register_*`
methods, it is not being moved from CPU to lazy device, which is
causing the test to fail on LTC backend. This commit uses
`self.register_buffer` to fix the test on LTC backend.

This commit also seems to fix the test for torchdynamo.
2023-07-24 09:07:13 -07:00
Sean Silva ef11a77315
update PyTorch version to 2.1.0.dev20230724 (#2339)
- torch version: 2.1.0.dev20230724
 - torch commit hash: ba1da8199b3077b77a78a78e7f0dad166435182f
 - torchvision version: 0.16.0.dev20230724

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>
2023-07-24 07:53:09 -07:00
Yuanqiang Liu 238c0501da
fix cmake torch-mlir-capi linking and bazel build (#2336) 2023-07-24 12:38:56 +08:00
Jiawei Wu 026e8db2e4
[Stablehlo] add converter for aten.scatter.src op (#2295) 2023-07-24 10:14:45 +08:00
Sean Silva dd0e91b466
update PyTorch version to 2.1.0.dev20230723 (#2335)
- torch version: 2.1.0.dev20230723
 - torch commit hash: a060bf3cf05c09906e78d7299efc8184568ea2e1
 - torchvision version: 0.16.0.dev20230723

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>
2023-07-23 07:52:27 -07:00
Sean Silva f0d8b6218b
update PyTorch version to 2.1.0.dev20230722 (#2333)
- torch version: 2.1.0.dev20230722
 - torch commit hash: b5222f140da05e40ac90ff42bd1db6564343daff
 - torchvision version: 0.16.0.dev20230722

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>
2023-07-22 07:53:00 -07:00
Sean Silva fb4c54fbef
update PyTorch version to 2.1.0.dev20230721 (#2331)
- torch version: 2.1.0.dev20230721
 - torch commit hash: f228c8b8cac3db634516c7101dee077cbaa026ab
 - torchvision version: 0.16.0.dev20230721

Co-authored-by: Roll PyTorch Action <torch-mlir@users.noreply.github.com>
2023-07-21 12:23:29 -07:00
Matthias Gehre 3ca35b4f3c
TorchToTosa: aten.embedding: Allow indices with any rank (#2327)
It's actually fine to not check the rank of the indices, because the conversion anyways flattens the index tensor to be (1, numElements) before applying tosa::gather, and then anyways reshapes the output tensor to the output shape of the aten.embedding.
2023-07-21 08:54:19 +02:00
Alexandre Rames 1e468e8294 Fix canonicalization of `torch.prim.TupleUnpack`. 2023-07-20 20:08:46 +02:00