git: 4ec0307c1551 - main - games/veloren-weekly: restore SIMD via upstream after b352c01459d9

From: Jan Beich <jbeich_at_FreeBSD.org>
Date: Sat, 18 May 2024 15:49:55 UTC
The branch main has been updated by jbeich:

URL: https://cgit.FreeBSD.org/ports/commit/?id=4ec0307c1551f9c26b3c65dddb583464c4e081a3

commit 4ec0307c1551f9c26b3c65dddb583464c4e081a3
Author:     Jan Beich <jbeich@FreeBSD.org>
AuthorDate: 2024-05-18 11:26:23 +0000
Commit:     Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2024-05-18 15:46:54 +0000

    games/veloren-weekly: restore SIMD via upstream after b352c01459d9
    
    PR:             278938
---
 games/veloren-weekly/Makefile                      |   1 +
 games/veloren-weekly/Makefile.crates               |  10 +-
 games/veloren-weekly/distinfo                      |  20 +-
 games/veloren-weekly/files/patch-rust-1.75.0       |  28 -
 games/veloren-weekly/files/patch-rust-1.78.0       | 668 ++++++++++++++++++++-
 .../files/patch-rust-1.78.0-disable-simd           |  16 -
 games/veloren-weekly/files/patch-rust-1.78.0-vek   | 416 -------------
 games/veloren-weekly/files/patch-vek               |  23 +-
 8 files changed, 675 insertions(+), 507 deletions(-)

diff --git a/games/veloren-weekly/Makefile b/games/veloren-weekly/Makefile
index 297f9215a47f..0aed797ac0a6 100644
--- a/games/veloren-weekly/Makefile
+++ b/games/veloren-weekly/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	veloren
 PORTVERSION=	s20240515
+PORTREVISION=	1
 CATEGORIES=	games wayland
 PKGNAMESUFFIX=	-weekly
 
diff --git a/games/veloren-weekly/Makefile.crates b/games/veloren-weekly/Makefile.crates
index baed4ad9dad9..d0517e870d0a 100644
--- a/games/veloren-weekly/Makefile.crates
+++ b/games/veloren-weekly/Makefile.crates
@@ -4,7 +4,6 @@ CARGO_CRATES=	ab_glyph-0.2.23 \
 		adler-1.0.2 \
 		adler32-1.2.0 \
 		ahash-0.4.8 \
-		ahash-0.7.8 \
 		ahash-0.8.11 \
 		aho-corasick-1.1.3 \
 		allocator-api2-0.2.16 \
@@ -431,7 +430,6 @@ CARGO_CRATES=	ab_glyph-0.2.23 \
 		ordered-float-4.2.0 \
 		overload-0.1.1 \
 		owned_ttf_parser-0.20.0 \
-		packed_simd-0.3.9 \
 		parking-2.2.0 \
 		parking_lot-0.12.1 \
 		parking_lot_core-0.9.9 \
@@ -565,6 +563,8 @@ CARGO_CRATES=	ab_glyph-0.2.23 \
 		shellexpand-2.1.2 \
 		shellexpand-3.1.0 \
 		shlex-1.3.0 \
+		shred-0.16.1 \
+		shred-derive-0.7.0 \
 		shrev-1.1.3 \
 		signal-hook-0.3.17 \
 		signal-hook-mio-0.2.3 \
@@ -579,8 +579,6 @@ CARGO_CRATES=	ab_glyph-0.2.23 \
 		smithay-client-toolkit-0.16.1 \
 		smithay-clipboard-0.6.6 \
 		socket2-0.5.6 \
-		specs-0.20.0 \
-		specs-derive-0.4.1 \
 		spin-0.5.2 \
 		spin-0.9.8 \
 		spin_sleep-1.2.0 \
@@ -672,7 +670,7 @@ CARGO_CRATES=	ab_glyph-0.2.23 \
 		vcpkg-0.2.15 \
 		vec_map-0.8.2 \
 		vek-0.14.1 \
-		vek-0.16.1 \
+		vek-0.17.0 \
 		version-compare-0.1.1 \
 		version_check-0.9.4 \
 		walkdir-2.5.0 \
@@ -802,7 +800,7 @@ CARGO_CRATES=	ab_glyph-0.2.23 \
 		zstd-sys-2.0.9+zstd.1.5.5 \
 		keyboard-keynames@git+https://gitlab.com/Imbris/keyboard-keynames.git?tag=veloren-winit-0.28\#fca4bbdfa51bf054b155a455935b3792975c989d \
 		naga,wgpu,wgpu-core,wgpu-hal,wgpu-types@git+https://github.com/Imberflur/wgpu.git?tag=0.18-with-fixes-for-veloren-v1\#df527ef82e2eba827eda9278caa583506a06aa87 \
-		shred,shred-derive@git+https://github.com/amethyst/shred.git?rev=5d52c6fc390dd04c12158633e77591f6523d1f85\#5d52c6fc390dd04c12158633e77591f6523d1f85 \
+		specs,specs-derive@git+https://github.com/amethyst/specs.git?rev=4e2da1df29ee840baa9b936593c45592b7c9ae27\#4e2da1df29ee840baa9b936593c45592b7c9ae27 \
 		egui_wgpu_backend@git+https://github.com/hasenbanck/egui_wgpu_backend.git?rev=34691d4e9149deb9cd0bb8cbb5a56bffebf47588\#34691d4e9149deb9cd0bb8cbb5a56bffebf47588 \
 		auth-common,authc@git+https://gitlab.com/veloren/auth.git?rev=abb1a705827984e11706d7bb97fb7a459e1e6533\#abb1a705827984e11706d7bb97fb7a459e1e6533 \
 		fluent,fluent-bundle,fluent-syntax,intl-memoizer@git+https://github.com/juliancoffee/fluent-rs.git?branch=patched\#929cf9512de121cce9b4cbf1cb860cd3294a1cd9 \
diff --git a/games/veloren-weekly/distinfo b/games/veloren-weekly/distinfo
index 4edfafb3e7d7..08299733299e 100644
--- a/games/veloren-weekly/distinfo
+++ b/games/veloren-weekly/distinfo
@@ -11,8 +11,6 @@ SHA256 (rust/crates/adler32-1.2.0.crate) = aae1277d39aeec15cb388266ecc24b11c8046
 SIZE (rust/crates/adler32-1.2.0.crate) = 6411
 SHA256 (rust/crates/ahash-0.4.8.crate) = 0453232ace82dee0dd0b4c87a59bd90f7b53b314f3e0f61fe2ee7c8a16482289
 SIZE (rust/crates/ahash-0.4.8.crate) = 51510
-SHA256 (rust/crates/ahash-0.7.8.crate) = 891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9
-SIZE (rust/crates/ahash-0.7.8.crate) = 38550
 SHA256 (rust/crates/ahash-0.8.11.crate) = e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011
 SIZE (rust/crates/ahash-0.8.11.crate) = 43607
 SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916
@@ -865,8 +863,6 @@ SHA256 (rust/crates/overload-0.1.1.crate) = b15813163c1d831bf4a13c3610c05c0d03b3
 SIZE (rust/crates/overload-0.1.1.crate) = 24439
 SHA256 (rust/crates/owned_ttf_parser-0.20.0.crate) = d4586edfe4c648c71797a74c84bacb32b52b212eff5dfe2bb9f2c599844023e7
 SIZE (rust/crates/owned_ttf_parser-0.20.0.crate) = 150890
-SHA256 (rust/crates/packed_simd-0.3.9.crate) = 1f9f08af0c877571712e2e3e686ad79efad9657dbf0f7c3c8ba943ff6c38932d
-SIZE (rust/crates/packed_simd-0.3.9.crate) = 98340
 SHA256 (rust/crates/parking-2.2.0.crate) = bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae
 SIZE (rust/crates/parking-2.2.0.crate) = 9730
 SHA256 (rust/crates/parking_lot-0.12.1.crate) = 3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f
@@ -1133,6 +1129,10 @@ SHA256 (rust/crates/shellexpand-3.1.0.crate) = da03fa3b94cc19e3ebfc88c4229c49d8f
 SIZE (rust/crates/shellexpand-3.1.0.crate) = 25591
 SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64
 SIZE (rust/crates/shlex-1.3.0.crate) = 18713
+SHA256 (rust/crates/shred-0.16.1.crate) = 656294f5bdcf6d33f0cf89e88a72b58595e3fca0e77e4a4b9e9026179757fb1e
+SIZE (rust/crates/shred-0.16.1.crate) = 57217
+SHA256 (rust/crates/shred-derive-0.7.0.crate) = 69760b786f8b40361c10663eb63c81fa7d828008527d26aa7595b99c53ab3a8d
+SIZE (rust/crates/shred-derive-0.7.0.crate) = 2365
 SHA256 (rust/crates/shrev-1.1.3.crate) = a5ea33232fdcf1bf691ca33450e5a94dde13e1a8cbb8caabc5e4f9d761e10b1a
 SIZE (rust/crates/shrev-1.1.3.crate) = 11309
 SHA256 (rust/crates/signal-hook-0.3.17.crate) = 8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801
@@ -1161,10 +1161,6 @@ SHA256 (rust/crates/smithay-clipboard-0.6.6.crate) = 0a345c870a1fae0b1b779085e81
 SIZE (rust/crates/smithay-clipboard-0.6.6.crate) = 16797
 SHA256 (rust/crates/socket2-0.5.6.crate) = 05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871
 SIZE (rust/crates/socket2-0.5.6.crate) = 55270
-SHA256 (rust/crates/specs-0.20.0.crate) = a60eabdfd5a80e458c3e7bcc9f1076d6ce3cc8ddb71d69691f00fc0de735a635
-SIZE (rust/crates/specs-0.20.0.crate) = 92066
-SHA256 (rust/crates/specs-derive-0.4.1.crate) = 3e23e09360f3d2190fec4222cd9e19d3158d5da948c0d1ea362df617dd103511
-SIZE (rust/crates/specs-derive-0.4.1.crate) = 5224
 SHA256 (rust/crates/spin-0.5.2.crate) = 6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d
 SIZE (rust/crates/spin-0.5.2.crate) = 12004
 SHA256 (rust/crates/spin-0.9.8.crate) = 6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67
@@ -1347,8 +1343,8 @@ SHA256 (rust/crates/vec_map-0.8.2.crate) = f1bddf1187be692e79c5ffeab891132dfb0f2
 SIZE (rust/crates/vec_map-0.8.2.crate) = 14466
 SHA256 (rust/crates/vek-0.14.1.crate) = 04d6626f32b226e2c5b35f23ea87eaf683f3d93eaeb16b4084d0683479616f0f
 SIZE (rust/crates/vek-0.14.1.crate) = 82642
-SHA256 (rust/crates/vek-0.16.1.crate) = c85158043f3bc1fac596d59a77e07948da340b9951b451ed4cb4a8c480aa2157
-SIZE (rust/crates/vek-0.16.1.crate) = 87455
+SHA256 (rust/crates/vek-0.17.0.crate) = cb40015035f83ba23d647e647f8be060d0f6f99b7c7687989fbca3e3d65e7234
+SIZE (rust/crates/vek-0.17.0.crate) = 86001
 SHA256 (rust/crates/version-compare-0.1.1.crate) = 579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29
 SIZE (rust/crates/version-compare-0.1.1.crate) = 13224
 SHA256 (rust/crates/version_check-0.9.4.crate) = 49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f
@@ -1607,8 +1603,8 @@ SHA256 (Imbris-keyboard-keynames-veloren-winit-0.28_GL0.tar.gz) = cc8baf32868d7c
 SIZE (Imbris-keyboard-keynames-veloren-winit-0.28_GL0.tar.gz) = 4886
 SHA256 (Imberflur-wgpu-0.18-with-fixes-for-veloren-v1_GH0.tar.gz) = 49f1c4f4ea15c542b335c350319ce474660d6385d57cbcc8691bc1f53d564fd1
 SIZE (Imberflur-wgpu-0.18-with-fixes-for-veloren-v1_GH0.tar.gz) = 9994365
-SHA256 (amethyst-shred-5d52c6fc390dd04c12158633e77591f6523d1f85_GH0.tar.gz) = 099a29969d304d885e65316c34099b24100b8ec47dab5526af7326e550e79457
-SIZE (amethyst-shred-5d52c6fc390dd04c12158633e77591f6523d1f85_GH0.tar.gz) = 56424
+SHA256 (amethyst-specs-4e2da1df29ee840baa9b936593c45592b7c9ae27_GH0.tar.gz) = 0f7a525f61a575d212ecab1860af9166b6453a5ad5f44c5c7bcdcd4a353f6ff9
+SIZE (amethyst-specs-4e2da1df29ee840baa9b936593c45592b7c9ae27_GH0.tar.gz) = 142942
 SHA256 (hasenbanck-egui_wgpu_backend-34691d4e9149deb9cd0bb8cbb5a56bffebf47588_GH0.tar.gz) = 0e60138671e406a80cb19a1995681b1defcfc233353d9833d6c4cd1234c9ffd8
 SIZE (hasenbanck-egui_wgpu_backend-34691d4e9149deb9cd0bb8cbb5a56bffebf47588_GH0.tar.gz) = 13179
 SHA256 (veloren-auth-abb1a705827984e11706d7bb97fb7a459e1e6533_GL0.tar.gz) = ee7720109d4783ca16ddf1e68a5a78425b320cfc1dd18cbf5522f87053fae0fa
diff --git a/games/veloren-weekly/files/patch-rust-1.75.0 b/games/veloren-weekly/files/patch-rust-1.75.0
deleted file mode 100644
index e1c77e436da4..000000000000
--- a/games/veloren-weekly/files/patch-rust-1.75.0
+++ /dev/null
@@ -1,28 +0,0 @@
-Drop after lang/rust >= 1.76 update
-
-error[E0658]: cannot cast `dyn ai::Action<S, R>` to `dyn std::any::Any`, trait upcasting coercion is experimental
-   --> rtsim/src/ai/mod.rs:114:16
-    |
-114 |         match (other as &dyn Any).downcast_ref::<Self>() {
-    |                ^^^^^
-    |
-error[E0658]: cannot cast `dyn ai::Action<S, R>` to `dyn std::any::Any`, trait upcasting coercion is experimental
-   --> rtsim/src/ai/mod.rs:339:16
-    |
-339 |         match (other as &dyn Any).downcast_ref::<Self>() {
-    |                ^^^^^
-    |
-    = note: see issue #65991 <https://github.com/rust-lang/rust/issues/65991> for more information
-    = help: add `#![feature(trait_upcasting)]` to the crate attributes to enable
-    = note: required when coercing `&(dyn ai::Action<S, R> + 'static)` into `&(dyn std::any::Any + 'static)`
-
---- rtsim/src/lib.rs.orig	2024-02-07 19:13:27 UTC
-+++ rtsim/src/lib.rs
-@@ -2,6 +2,7 @@
-     never_type,
-     try_blocks,
-     trait_alias,
-+    trait_upcasting,
-     control_flow_enum,
-     let_chains,
-     binary_heap_drain_sorted,
diff --git a/games/veloren-weekly/files/patch-rust-1.78.0 b/games/veloren-weekly/files/patch-rust-1.78.0
index f298f1cf759f..279f5efd552d 100644
--- a/games/veloren-weekly/files/patch-rust-1.78.0
+++ b/games/veloren-weekly/files/patch-rust-1.78.0
@@ -1,21 +1,649 @@
-invalid_mut was renamed to without_provenance_mut
-in https://github.com/rust-lang/rust/commit/b58f647d5488dce73bba517907c44af2c2a618c4
-https://github.com/amethyst/shred/commit/68c05e7c628a0ae70996637507753e103a03aa95
+https://gitlab.com/veloren/veloren/-/merge_requests/4466
 
-error[E0425]: cannot find function `invalid_mut` in module `core::ptr`
-   --> /wrkdirs/usr/ports/games/veloren-weekly/work/shred-5d52c6fc390dd04c12158633e77591f6523d1f85/src/meta.rs:402:38
-    |
-402 |         let invalid_ptr = core::ptr::invalid_mut::<R>((self as *mut Self).addr());
-    |                                      ^^^^^^^^^^^ not found in `core::ptr`
-
---- ../shred-5d52c6fc390dd04c12158633e77591f6523d1f85/src/meta.rs.orig	2024-05-07 13:31:09.835758000 +0200
-+++ ../shred-5d52c6fc390dd04c12158633e77591f6523d1f85/src/meta.rs	2024-05-07 13:31:24.927663000 +0200
-@@ -399,7 +399,7 @@ impl<T: ?Sized> MetaTable<T> {
-     {
-         let ty_id = TypeId::of::<R>();
-         // use self.addr() for unpredictable address to use for checking consistency below
--        let invalid_ptr = core::ptr::invalid_mut::<R>((self as *mut Self).addr());
-+        let invalid_ptr = core::ptr::without_provenance_mut::<R>((self as *mut Self).addr());
-         let trait_ptr = <T as CastFrom<R>>::cast(invalid_ptr);
-         // assert that address not changed (to catch some mistakes in CastFrom impl)
-         assert_eq!(
+--- Cargo.lock.orig	2024-05-15 12:12:16 UTC
++++ Cargo.lock
+@@ -47,17 +47,6 @@ name = "ahash"
+ 
+ [[package]]
+ name = "ahash"
+-version = "0.7.8"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
+-dependencies = [
+- "getrandom 0.2.12",
+- "once_cell",
+- "version_check",
+-]
+-
+-[[package]]
+-name = "ahash"
+ version = "0.8.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
+@@ -4474,16 +4463,6 @@ dependencies = [
+ ]
+ 
+ [[package]]
+-name = "packed_simd"
+-version = "0.3.9"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1f9f08af0c877571712e2e3e686ad79efad9657dbf0f7c3c8ba943ff6c38932d"
+-dependencies = [
+- "cfg-if 1.0.0",
+- "num-traits",
+-]
+-
+-[[package]]
+ name = "parking"
+ version = "2.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -5794,8 +5773,9 @@ name = "shred"
+ 
+ [[package]]
+ name = "shred"
+-version = "0.15.0"
+-source = "git+https://github.com/amethyst/shred.git?rev=5d52c6fc390dd04c12158633e77591f6523d1f85#5d52c6fc390dd04c12158633e77591f6523d1f85"
++version = "0.16.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "656294f5bdcf6d33f0cf89e88a72b58595e3fca0e77e4a4b9e9026179757fb1e"
+ dependencies = [
+  "ahash 0.8.11",
+  "arrayvec",
+@@ -5808,8 +5788,9 @@ name = "shred-derive"
+ 
+ [[package]]
+ name = "shred-derive"
+-version = "0.6.3"
+-source = "git+https://github.com/amethyst/shred.git?rev=5d52c6fc390dd04c12158633e77591f6523d1f85#5d52c6fc390dd04c12158633e77591f6523d1f85"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "69760b786f8b40361c10663eb63c81fa7d828008527d26aa7595b99c53ab3a8d"
+ dependencies = [
+  "proc-macro2 1.0.79",
+  "quote 1.0.35",
+@@ -5943,10 +5924,9 @@ version = "0.20.0"
+ [[package]]
+ name = "specs"
+ version = "0.20.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a60eabdfd5a80e458c3e7bcc9f1076d6ce3cc8ddb71d69691f00fc0de735a635"
++source = "git+https://github.com/amethyst/specs.git?rev=4e2da1df29ee840baa9b936593c45592b7c9ae27#4e2da1df29ee840baa9b936593c45592b7c9ae27"
+ dependencies = [
+- "ahash 0.7.8",
++ "ahash 0.8.11",
+  "crossbeam-queue",
+  "hibitset",
+  "log",
+@@ -5962,8 +5942,7 @@ version = "0.4.1"
+ [[package]]
+ name = "specs-derive"
+ version = "0.4.1"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3e23e09360f3d2190fec4222cd9e19d3158d5da948c0d1ea362df617dd103511"
++source = "git+https://github.com/amethyst/specs.git?rev=4e2da1df29ee840baa9b936593c45592b7c9ae27#4e2da1df29ee840baa9b936593c45592b7c9ae27"
+ dependencies = [
+  "proc-macro2 1.0.79",
+  "quote 1.0.35",
+@@ -6816,9 +6795,9 @@ name = "vek"
+ 
+ [[package]]
+ name = "vek"
+-version = "0.16.1"
++version = "0.17.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c85158043f3bc1fac596d59a77e07948da340b9951b451ed4cb4a8c480aa2157"
++checksum = "cb40015035f83ba23d647e647f8be060d0f6f99b7c7687989fbca3e3d65e7234"
+ dependencies = [
+  "approx 0.5.1",
+  "num-integer",
+@@ -6848,7 +6827,7 @@ dependencies = [
+  "specs",
+  "tokio",
+  "tracing",
+- "vek 0.16.1",
++ "vek 0.17.0",
+  "veloren-client-i18n",
+  "veloren-common",
+  "veloren-common-base",
+@@ -6919,7 +6898,7 @@ dependencies = [
+  "tracing",
+  "tracing-subscriber",
+  "uuid",
+- "vek 0.16.1",
++ "vek 0.17.0",
+  "veloren-common-assets",
+  "veloren-common-base",
+  "veloren-common-i18n",
+@@ -7004,7 +6983,7 @@ dependencies = [
+  "specs",
+  "sum_type",
+  "tracing",
+- "vek 0.16.1",
++ "vek 0.17.0",
+  "veloren-common",
+ ]
+ 
+@@ -7028,7 +7007,7 @@ dependencies = [
+  "timer-queue",
+  "toml 0.8.12",
+  "tracing",
+- "vek 0.16.1",
++ "vek 0.17.0",
+  "veloren-common",
+  "veloren-common-assets",
+  "veloren-common-base",
+@@ -7048,7 +7027,7 @@ dependencies = [
+  "rayon",
+  "specs",
+  "tracing",
+- "vek 0.16.1",
++ "vek 0.17.0",
+  "veloren-common",
+  "veloren-common-base",
+  "veloren-common-ecs",
+@@ -7132,7 +7111,7 @@ dependencies = [
+  "serde",
+  "slotmap",
+  "tracing",
+- "vek 0.16.1",
++ "vek 0.17.0",
+  "veloren-common",
+  "veloren-world",
+ ]
+@@ -7175,7 +7154,7 @@ dependencies = [
+  "strum 0.24.1",
+  "tokio",
+  "tracing",
+- "vek 0.16.1",
++ "vek 0.17.0",
+  "veloren-common",
+  "veloren-common-base",
+  "veloren-common-ecs",
+@@ -7198,7 +7177,7 @@ dependencies = [
+  "rand 0.8.5",
+  "specs",
+  "tracing",
+- "vek 0.16.1",
++ "vek 0.17.0",
+  "veloren-common",
+  "veloren-common-base",
+  "veloren-common-dynlib",
+@@ -7295,7 +7274,7 @@ dependencies = [
+  "tokio",
+  "tracing",
+  "treeculler",
+- "vek 0.16.1",
++ "vek 0.17.0",
+  "veloren-client",
+  "veloren-client-i18n",
+  "veloren-common",
+@@ -7323,7 +7302,7 @@ dependencies = [
+ dependencies = [
+  "bytemuck",
+  "lazy_static",
+- "vek 0.16.1",
++ "vek 0.17.0",
+  "veloren-common",
+  "veloren-common-dynlib",
+ ]
+@@ -7379,7 +7358,6 @@ dependencies = [
+  "num 0.4.1",
+  "num-traits",
+  "ordered-float 3.9.2",
+- "packed_simd",
+  "rand 0.8.5",
+  "rand_chacha 0.3.1",
+  "rayon",
+@@ -7392,7 +7370,7 @@ dependencies = [
+  "svg_fmt",
+  "tracing",
+  "tracing-subscriber",
+- "vek 0.16.1",
++ "vek 0.17.0",
+  "veloren-common",
+  "veloren-common-base",
+  "veloren-common-dynlib",
+--- Cargo.toml.orig	2024-05-15 12:12:16 UTC
++++ Cargo.toml
+@@ -1,5 +1,3 @@
+-cargo-features = ["named-profiles", "profile-overrides"]
+-
+ [workspace]
+ resolver = "2"
+ members = [
+@@ -142,7 +140,7 @@ num-traits = { version = "0.2" }
+ ordered-float = { version = "3", default-features = true }
+ num = { version = "0.4" }
+ num-traits = { version = "0.2" }
+-vek = { version = "0.16.1", features = ["serde"] }
++vek = { version = "0.17.0", features = ["serde"] }
+ itertools = { version = "0.10" }
+ 
+ serde = { version = "1.0.118", features = ["derive"] }
+@@ -159,7 +157,8 @@ hex = "0.4.3"
+ hex = "0.4.3"
+ 
+ [patch.crates-io]
+-shred = { git = "https://github.com/amethyst/shred.git", rev = "5d52c6fc390dd04c12158633e77591f6523d1f85" }
++# until next specs release
++specs = { git = "https://github.com/amethyst/specs.git", rev = "4e2da1df29ee840baa9b936593c45592b7c9ae27" }
+ # This is needed because of:
+ # * an issue with spirv & naga in wgpu 0.18 (I assume this is fixed upstream but not in 0.18)
+ # * an issue with uint in uniforms for gl. (potentially fixed in 0.19?)
+--- client/i18n/src/error.rs.orig	2024-05-15 12:12:16 UTC
++++ client/i18n/src/error.rs
+@@ -45,6 +45,7 @@ pub enum ResourceErr {
+         #[allow(dead_code)] // false-positive
+         err: String,
+     },
++    #[allow(dead_code)] // false-positive
+     BundleError(String),
+ }
+ 
+--- common/query_server/src/proto.rs.orig	2024-05-15 12:12:16 UTC
++++ common/query_server/src/proto.rs
+@@ -1,3 +1,4 @@
++#![allow(non_local_definitions)] //TODO: added 2024-05-15 to update toolchain
+ use protocol::Protocol;
+ 
+ pub(crate) const VERSION: u16 = 0;
+--- rtsim/src/lib.rs.orig	2024-05-15 12:12:16 UTC
++++ rtsim/src/lib.rs
+@@ -7,7 +7,8 @@
+     binary_heap_drain_sorted,
+     fn_traits,
+     unboxed_closures,
+-    tuple_trait
++    tuple_trait,
++    trait_upcasting
+ )]
+ 
+ pub mod ai;
+--- rust-toolchain.orig	2024-05-15 12:12:16 UTC
++++ rust-toolchain
+@@ -1 +1 @@
+-nightly-2024-01-17
++nightly-2024-05-14
+--- server/agent/src/lib.rs.orig	2024-05-15 12:12:16 UTC
++++ server/agent/src/lib.rs
+@@ -1,4 +1,4 @@
+-#![feature(exclusive_range_pattern, let_chains)]
++#![feature(let_chains)]
+ #![allow(
+     clippy::needless_pass_by_ref_mut //until we find a better way for specs
+ )]
+--- server/src/persistence/models.rs.orig	2024-05-15 12:12:16 UTC
++++ server/src/persistence/models.rs
+@@ -1,5 +1,6 @@ pub struct Character {
+ pub struct Character {
+     pub character_id: i64,
++    #[allow(dead_code)]
+     pub player_uuid: String,
+     pub alias: String,
+     pub waypoint: Option<String>,
+@@ -16,6 +17,7 @@ pub struct Body {
+ }
+ 
+ pub struct Body {
++    #[allow(dead_code)]
+     pub body_id: i64,
+     pub variant: String,
+     pub body_data: String,
+@@ -38,6 +40,7 @@ pub struct AbilitySets {
+ }
+ 
+ pub struct AbilitySets {
++    #[allow(dead_code)]
+     pub entity_id: i64,
+     pub ability_sets: String,
+ }
+--- voxygen/src/credits.rs.orig	2024-05-15 12:12:16 UTC
++++ voxygen/src/credits.rs
+@@ -7,6 +7,7 @@ use std::path::PathBuf;
+ 
+ // See best practices for attribution: https://wiki.creativecommons.org/wiki/Best_practices_for_attribution
+ 
++#[allow(dead_code)]
+ #[derive(Clone, Deserialize)]
+ pub struct Art {
+     /// Name of the art.
+--- voxygen/src/hud/mod.rs.orig	2024-05-15 12:12:16 UTC
++++ voxygen/src/hud/mod.rs
+@@ -1,3 +1,4 @@
++#![allow(non_local_definitions)] // because of WidgetCommon derive
+ mod animation;
+ mod bag;
+ mod buffs;
+--- voxygen/src/render/renderer/rain_occlusion_map.rs.orig	2024-05-15 12:12:16 UTC
++++ voxygen/src/render/renderer/rain_occlusion_map.rs
+@@ -11,7 +11,6 @@ pub struct RainOcclusionMapRenderer {
+ 
+     pub terrain_pipeline: rain_occlusion::RainOcclusionPipeline,
+     pub figure_pipeline: rain_occlusion::RainOcclusionFigurePipeline,
+-    pub layout: rain_occlusion::RainOcclusionLayout,
+ }
+ 
+ pub enum RainOcclusionMap {
+@@ -31,13 +30,10 @@ impl RainOcclusionMap {
+         if let (Some(terrain_pipeline), Some(figure_pipeline), Some(depth)) =
+             (directed, figure, view)
+         {
+-            let layout = rain_occlusion::RainOcclusionLayout::new(device);
+-
+             Self::Enabled(RainOcclusionMapRenderer {
+                 depth,
+                 terrain_pipeline,
+                 figure_pipeline,
+-                layout,
+             })
+         } else {
+             Self::Disabled(Self::create_dummy_tex(device, queue))
+--- voxygen/src/render/renderer/shadow_map.rs.orig	2024-05-15 12:12:16 UTC
++++ voxygen/src/render/renderer/shadow_map.rs
+@@ -12,7 +12,6 @@ pub struct ShadowMapRenderer {
+     pub terrain_directed_pipeline: shadow::ShadowPipeline,
+     pub figure_directed_pipeline: shadow::ShadowFigurePipeline,
+     pub debug_directed_pipeline: shadow::ShadowDebugPipeline,
+-    pub layout: shadow::ShadowLayout,
+ }
+ 
+ pub enum ShadowMap {
+@@ -43,8 +42,6 @@ impl ShadowMap {
+         {
+             let (point_depth, directed_depth) = shadow_views;
+ 
+-            let layout = shadow::ShadowLayout::new(device);
+-
+             Self::Enabled(ShadowMapRenderer {
+                 directed_depth,
+                 point_depth,
+@@ -53,8 +50,6 @@ impl ShadowMap {
+                 terrain_directed_pipeline,
+                 figure_directed_pipeline,
+                 debug_directed_pipeline,
+-
+-                layout,
+             })
+         } else {
+             let (dummy_point, dummy_directed) = Self::create_dummy_shadow_tex(device, queue);
+--- voxygen/src/scene/terrain.rs.orig	2024-05-15 12:12:16 UTC
++++ voxygen/src/scene/terrain.rs
+@@ -153,22 +153,6 @@ struct MeshWorkerResponse {
+     blocks_of_interest: BlocksOfInterest,
+ }
+ 
+-/// Conversion of SpriteSpec from a hashmap failed because some sprites were
+-/// missing.
+-struct SpritesMissing(Vec<SpriteKind>);
+-
+-use core::fmt;
+-
+-impl fmt::Display for SpritesMissing {
+-    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+-        writeln!(
+-            f,
+-            "Missing entries in the sprite manifest for these sprites: {:?}",
+-            &self.0,
+-        )
+-    }
+-}
+-
+ pub fn get_sprite_instances<'a, I: 'a>(
+     lod_levels: &'a mut [I; SPRITE_LOD_LEVELS],
+     set_instance: impl Fn(&mut I, SpriteInstance, Vec3<i32>),
+--- voxygen/src/ui/widgets/mod.rs.orig	2024-05-15 12:12:16 UTC
++++ voxygen/src/ui/widgets/mod.rs
+@@ -1,3 +1,4 @@
++#![allow(non_local_definitions)] // because of WidgetCommon derive
+ pub mod ghost_image;
+ pub mod image_frame;
+ pub mod image_slider;
+--- world/Cargo.toml.orig	2024-05-15 12:12:16 UTC
++++ world/Cargo.toml
+@@ -7,7 +7,7 @@ be-dyn-lib = []
+ [features]
+ use-dyn-lib = ["common-dynlib"]
+ be-dyn-lib = []
+-simd = ["vek/platform_intrinsics", "packed_simd"]
++simd = ["vek/platform_intrinsics"]
+ bin_compression = ["lz-fear", "deflate", "flate2", "image/jpeg", "num-traits", "fallible-iterator", "rstar", "cli"]
+ cli = ["clap", "signal-hook", "indicatif"]
+ 
+@@ -36,7 +36,6 @@ arr_macro = "0.2.1"
+ rand = { workspace = true }
+ rand_chacha = { workspace = true }
+ arr_macro = "0.2.1"
+-packed_simd = { version = "0.3.9", optional = true }
+ rayon = { workspace = true }
+ serde = { workspace = true }
+ ron = { workspace = true }
+--- world/src/layer/mod.rs.orig	2024-05-15 12:12:16 UTC
++++ world/src/layer/mod.rs
+@@ -23,7 +23,7 @@ use common::{
+     generation::{ChunkSupplement, EntityInfo},
+     lottery::Lottery,
+     terrain::{Block, BlockKind, SpriteKind},
+-    vol::{BaseVol, ReadVol, RectSizedVol, WriteVol},
++    vol::{ReadVol, RectSizedVol, WriteVol},
+ };
+ use hashbrown::HashMap;
+ use noise::NoiseFn;
+@@ -576,7 +576,7 @@ pub fn apply_caves_supplement<'a>(
+     dynamic_rng: &mut impl Rng,
+     wpos2d: Vec2<i32>,
+     mut get_column: impl FnMut(Vec2<i32>) -> Option<&'a ColumnSample<'a>>,
+-    vol: &(impl BaseVol<Vox = Block> + RectSizedVol + ReadVol + WriteVol),
++    vol: &(impl RectSizedVol<Vox = Block> + ReadVol + WriteVol),
+     index: IndexRef,
+     supplement: &mut ChunkSupplement,
+ ) {
+--- world/src/layer/wildlife.rs.orig	2024-05-15 12:12:16 UTC
++++ world/src/layer/wildlife.rs
+@@ -6,7 +6,7 @@ use common::{
+     resources::TimeOfDay,
+     terrain::{BiomeKind, Block},
+     time::DayPeriod,
+-    vol::{BaseVol, ReadVol, RectSizedVol, WriteVol},
++    vol::{ReadVol, RectSizedVol, WriteVol},
+ };
+ use rand::prelude::*;
+ use serde::Deserialize;
+@@ -554,7 +554,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>(
+     dynamic_rng: &mut R,
+     wpos2d: Vec2<i32>,
+     mut get_column: impl FnMut(Vec2<i32>) -> Option<&'a ColumnSample<'a>>,
+-    vol: &(impl BaseVol<Vox = Block> + RectSizedVol + ReadVol + WriteVol),
++    vol: &(impl RectSizedVol<Vox = Block> + ReadVol + WriteVol),
+     index: IndexRef,
+     chunk: &SimChunk,
+     supplement: &mut ChunkSupplement,
+@@ -587,8 +587,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>(
+ 
+             let entity_group = scatter
+                 .iter()
+-                .enumerate()
+-                .filter_map(|(_i, (entry, get_density))| {
++                .filter_map(|(entry, get_density)| {
+                     let density = get_density(chunk, col_sample) * wildlife_density_modifier;
+                     (density > 0.0)
+                         .then(|| {
+--- world/src/lib.rs.orig	2024-05-15 12:12:16 UTC
++++ world/src/lib.rs
+@@ -8,6 +8,7 @@
+ #![allow(clippy::branches_sharing_code)] // TODO: evaluate
+ #![deny(clippy::clone_on_ref_ptr)]
+ #![feature(option_zip, let_chains)]
++#![cfg_attr(feature = "simd", feature(portable_simd))]
+ 
+ mod all;
+ mod block;
+--- world/src/sim/erosion.rs.orig	2024-05-15 12:12:16 UTC
++++ world/src/sim/erosion.rs
+@@ -13,14 +13,12 @@ use ordered_float::NotNan;
+ use noise::NoiseFn;
+ use num::{Float, Zero};
+ use ordered_float::NotNan;
+-#[cfg(feature = "simd")] use packed_simd::m32;
+ use rayon::prelude::*;
+ use std::{
+     cmp::{Ordering, Reverse},
+     collections::BinaryHeap,
+-    f32, fmt, mem,
++    fmt, mem,
+     time::Instant,
+-    u32,
+ };
+ use vek::*;
+ 
+@@ -609,15 +607,17 @@ fn get_max_slope(
+ #[cfg(not(feature = "simd"))]
+ #[derive(Copy, Clone)]
+ #[allow(non_camel_case_types)]
+-struct m32(u32);
++struct M32(u32);
+ #[cfg(not(feature = "simd"))]
+-impl m32 {
++impl M32 {
+     #[inline]
+-    fn new(x: bool) -> Self { if x { Self(u32::MAX) } else { Self(u32::MIN) } }
++    fn splat(x: bool) -> Self { if x { Self(u32::MAX) } else { Self(u32::MIN) } }
+ 
+     #[inline]
+-    fn test(&self) -> bool { self.0 != 0 }
++    fn test(&self, cmp: u32) -> bool { self.0 != cmp }
+ }
++#[cfg(feature = "simd")]
++type M32 = std::simd::Mask<i32, 1>;
+ 
+ /// Erode all chunks by amount.
+ ///
+@@ -862,7 +862,7 @@ fn erode(
+     let mid_slope = (30.0 / 360.0 * 2.0 * std::f64::consts::PI).tan();
+ 
+     type SimdType = f32;
+-    type MaskType = m32;
++    type MaskType = M32;
+ 
+     // Precompute factors for Stream Power Law.
+     let czero = <SimdType as Zero>::zero();
+@@ -1316,7 +1316,7 @@ fn erode(
+                             let tolp = 1.0e-3;
+                             let mut errp = 2.0 * tolp;
+                             let mut rec_heights = [0.0; 8];
+-                            let mut mask = [MaskType::new(false); 8];
++                            let mut mask = [MaskType::splat(false); 8];
+                             mrec_downhill(map_size_lg, &mrec, posi).for_each(|(kk, posj)| {
+                                 let posj_stack = mstack_inv[posj];
+                                 let h_j = h_stack[posj_stack];
+@@ -1324,7 +1324,7 @@ fn erode(
+                                 // + uplift(posj) as f64
+                                 // NOTE: We also considered using old_elev_i > wh[posj] here.
+                                 if old_elev_i > h_j {
+-                                    mask[kk] = MaskType::new(true);
++                                    mask[kk] = MaskType::splat(true);
+                                     rec_heights[kk] = h_j as SimdType;
+                                 }
+                             });
+@@ -1333,7 +1333,7 @@ fn erode(
+                                 let mut df = 1.0;
+                                 izip!(&mask, &rec_heights, k_fs_fact, k_df_fact).for_each(
+                                     |(&mask_kk, &rec_heights_kk, &k_fs_fact_kk, &k_df_fact_kk)| {
+-                                        if mask_kk.test() {
++                                        if mask_kk.test(0) {
+                                             let h_j = rec_heights_kk;
+                                             let elev_j = h_j;
+                                             let dh = 0.0.max(new_h_i as SimdType - elev_j);
+--- world/src/sim/mod.rs.orig	2024-05-15 12:12:16 UTC
++++ world/src/sim/mod.rs
+@@ -858,8 +858,7 @@ impl WorldSim {
+                                 (gen_ctx
+                                     .alt_nz
+                                     .get((wposf.div(10_000.0)).into_array())
+-                                    .min(1.0)
+-                                    .max(-1.0))
++                                    .clamp(-1.0, 1.0))
+                                 .sub(0.05)
+                                 .mul(0.35),
+                             )
+@@ -871,8 +870,7 @@ impl WorldSim {
+                                 (gen_ctx
+                                     .alt_nz
+                                     .get((wposf.div(5_000.0 * gen_opts.scale)).into_array())
+-                                    .min(1.0)
+-                                    .max(-1.0))
++                                    .clamp(-1.0, 1.0))
+                                 .add(
+                                     0.2 - ((wposf / world_sizef) * 2.0 - 1.0)
+                                         .magnitude_squared()
+--- world/src/sim/util.rs.orig	2024-05-15 12:12:16 UTC
++++ world/src/sim/util.rs
+@@ -7,7 +7,7 @@ use rayon::prelude::*;
+ use noise::{MultiFractal, NoiseFn, Perlin, Seedable};
+ use num::Float;
+ use rayon::prelude::*;
+-use std::{f32, f64, ops::Mul, u32};
++use std::ops::Mul;
+ use vek::*;
+ 
+ /// Calculates the smallest distance along an axis (x, y) from an edge of
+--- world/src/site2/gen.rs.orig	2024-05-15 12:12:16 UTC
++++ world/src/site2/gen.rs
+@@ -1415,18 +1415,6 @@ impl<'a, const N: usize> PrimitiveTransform for [Primi
+     }
+ }
+ 
+-pub trait PrimitiveGroupFill<const N: usize> {
+-    fn fill_many(self, fills: [Fill; N]);
+-}
+-
+-impl<const N: usize> PrimitiveGroupFill<N> for [PrimitiveRef<'_>; N] {
+-    fn fill_many(self, fills: [Fill; N]) {
+-        for i in 0..N {
+-            self[i].fill(fills[i].clone());
+-        }
+-    }
+-}
+-
+ pub trait Structure {
+     #[cfg(feature = "use-dyn-lib")]
+     const UPDATE_FN: &'static [u8];
+--- world/src/site/castle/mod.rs.orig	2024-05-15 12:12:16 UTC
++++ world/src/site/castle/mod.rs
+@@ -14,7 +14,7 @@ use common::{
+ use common::{
+     generation::ChunkSupplement,
+     terrain::{Block, BlockKind, SpriteKind},
+-    vol::{BaseVol, ReadVol, RectSizedVol, WriteVol},
++    vol::{ReadVol, RectSizedVol, WriteVol},
+ };
+ use core::f32;
+ use rand::prelude::*;
+@@ -190,7 +190,7 @@ impl Castle {
+         index: IndexRef,
+         wpos2d: Vec2<i32>,
+         mut get_column: impl FnMut(Vec2<i32>) -> Option<&'a ColumnSample<'a>>,
+-        vol: &mut (impl BaseVol<Vox = Block> + RectSizedVol + ReadVol + WriteVol),
++        vol: &mut (impl RectSizedVol<Vox = Block> + ReadVol + WriteVol),
+     ) {
+         for y in 0..vol.size_xy().y as i32 {
+             for x in 0..vol.size_xy().x as i32 {
+--- world/src/site/settlement/mod.rs.orig	2024-05-15 12:12:16 UTC
++++ world/src/site/settlement/mod.rs
+@@ -30,7 +30,7 @@ use common::{
+     store::{Id, Store},
+     terrain::{Block, BlockKind, SpriteKind, TerrainChunkSize},
+     trade::{Good, SiteInformation},
+-    vol::{BaseVol, ReadVol, RectSizedVol, RectVolSize, WriteVol},
++    vol::{ReadVol, RectSizedVol, RectVolSize, WriteVol},
+ };
+ 
+ use fxhash::FxHasher64;
+@@ -560,7 +560,7 @@ impl Settlement {
+         index: IndexRef,
+         wpos2d: Vec2<i32>,
+         mut get_column: impl FnMut(Vec2<i32>) -> Option<&'a ColumnSample<'a>>,
+-        vol: &mut (impl BaseVol<Vox = Block> + RectSizedVol + ReadVol + WriteVol),
++        vol: &mut (impl RectSizedVol<Vox = Block> + ReadVol + WriteVol),
+     ) {
+         let colors = &index.colors.site.settlement;
+ 
diff --git a/games/veloren-weekly/files/patch-rust-1.78.0-disable-simd b/games/veloren-weekly/files/patch-rust-1.78.0-disable-simd
deleted file mode 100644
index 54a9ea7488fa..000000000000
--- a/games/veloren-weekly/files/patch-rust-1.78.0-disable-simd
+++ /dev/null
@@ -1,16 +0,0 @@
-packed_simd doesn't compile with rust 1.78.0
-Part of the issue is fixed with https://github.com/yoanlcq/vek/pull/95/files
-but it's not enough, packed_simd2 is used here:
-https://gitlab.com/veloren/veloren/-/blob/master/world/src/sim/erosion.rs?ref_type=heads#L16
-
---- world/Cargo.toml.orig	2024-05-10 18:54:20.494825000 +0200
-+++ world/Cargo.toml	2024-05-10 18:54:43.257129000 +0200
-@@ -11,7 +11,7 @@ cli = ["clap", "signal-hook", "indicatif"]
- bin_compression = ["lz-fear", "deflate", "flate2", "image/jpeg", "num-traits", "fallible-iterator", "rstar", "cli"]
- cli = ["clap", "signal-hook", "indicatif"]
- 
--default = ["simd"]
-+#default = ["simd"]
- 
- [dependencies]
- common = { package = "veloren-common", path = "../common" }
diff --git a/games/veloren-weekly/files/patch-rust-1.78.0-vek b/games/veloren-weekly/files/patch-rust-1.78.0-vek
deleted file mode 100644
index 3aecbf1b819c..000000000000
--- a/games/veloren-weekly/files/patch-rust-1.78.0-vek
+++ /dev/null
@@ -1,416 +0,0 @@
-https://github.com/yoanlcq/vek/commit/23a8a82e01135973f681182590ed0c7927d5f594
-
-error[E0044]: foreign items may not have type parameters
-  --> cargo-crates/vek-0.16.1/src/simd_llvm.rs:15:5
-   |
-15 |     pub fn simd_eq<T, U>(x: T, y: T) -> U;
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't have type parameters
-   |
-   = help: replace the type parameters with concrete types like `u32`
-
---- cargo-crates/vek-0.16.1/src/lib.rs.orig	1970-01-01 00:00:00 UTC
-+++ cargo-crates/vek-0.16.1/src/lib.rs
-@@ -37,7 +37,7 @@
- #![cfg_attr(all(nightly, feature = "clippy"), plugin(clippy))]
- //#![cfg_attr(all(nightly, feature="repr_simd" ), feature(cfg_target_feature))]
- #![cfg_attr(all(nightly, feature = "repr_simd"), feature(repr_simd, simd_ffi))]
--#![cfg_attr(all(nightly, feature = "platform_intrinsics"), feature(platform_intrinsics))]
-+#![cfg_attr(all(nightly, feature = "platform_intrinsics"), feature(portable_simd, core_intrinsics))]
- //#![cfg_attr(feature="repr_simd", allow(improper_ctypes)]
- //#![cfg_attr(feature="repr_simd", feature(link_llvm_intrinsics)]
- #![cfg_attr(all(nightly, test), feature(test))]
-@@ -72,10 +72,6 @@ pub extern crate approx;
- #[macro_use]
- pub extern crate approx;
- 
--#[cfg(feature = "platform_intrinsics")]
--mod simd_llvm;
--// ^ Please do not make this module public; we don't want people to use it, because it could change as the SIMD infrastructure evolves.
--
- pub mod ops;
- pub use crate::ops::*;
- pub mod vec;
-@@ -92,5 +88,3 @@ pub use crate::geom::*;
- pub use crate::bezier::*;
- pub mod geom;
- pub use crate::geom::*;
--pub mod simd_traits;
--pub use crate::simd_traits::*;
---- cargo-crates/vek-0.16.1/src/simd_llvm.rs	1970-01-01 00:00:00 UTC
-+++ /dev/null
-@@ -1,96 +0,0 @@
--// !!! NOTE !!!
--//
--// Downloaded from https://raw.githubusercontent.com/rust-lang/stdarch/master/crates/core_arch/src/simd_llvm.rs
--//
--// The relevant RFC is https://github.com/rust-lang/rfcs/blob/master/text/1199-simd-infrastructure.md
--//
--
--//! LLVM's simd platform intrinsics
--//!
--//! TODO: should use `link_llvm_intrinsic` instead: issue #112
--
--#[allow(dead_code)]
--extern "platform-intrinsic" {
--    //pub fn simd_select_bitmask
--    pub fn simd_eq<T, U>(x: T, y: T) -> U;
--    pub fn simd_ne<T, U>(x: T, y: T) -> U;
--    pub fn simd_lt<T, U>(x: T, y: T) -> U;
--    pub fn simd_le<T, U>(x: T, y: T) -> U;
--    pub fn simd_gt<T, U>(x: T, y: T) -> U;
--    pub fn simd_ge<T, U>(x: T, y: T) -> U;
--
--    // #[rustc_args_required_const(2)]
--    // pub fn simd_shuffle2<T, U>(x: T, y: T, idx: [u32; 2]) -> U;
--    // #[rustc_args_required_const(2)]
--    // pub fn simd_shuffle4<T, U>(x: T, y: T, idx: [u32; 4]) -> U;
--    // #[rustc_args_required_const(2)]
--    // pub fn simd_shuffle8<T, U>(x: T, y: T, idx: [u32; 8]) -> U;
--    // #[rustc_args_required_const(2)]
--    // pub fn simd_shuffle16<T, U>(x: T, y: T, idx: [u32; 16]) -> U;
--    // #[rustc_args_required_const(2)]
--    // pub fn simd_shuffle32<T, U>(x: T, y: T, idx: [u32; 32]) -> U;
--    // #[rustc_args_required_const(2)]
--    // pub fn simd_shuffle64<T, U>(x: T, y: T, idx: [u32; 64]) -> U;
--    // #[rustc_args_required_const(2)]
--    // pub fn simd_shuffle128<T, U>(x: T, y: T, idx: [u32; 128]) -> U;
--
--    // #[rustc_const_unstable(feature = "const_simd_insert", issue = "none")]
--    // pub fn simd_insert<T, U>(x: T, idx: u32, val: U) -> T;
--    // #[rustc_const_unstable(feature = "const_simd_extract", issue = "none")]
--    // pub fn simd_extract<T, U>(x: T, idx: u32) -> U;
--    //pub fn simd_select
--    pub fn simd_bitmask<T, U>(x: T) -> U;
--
--    pub fn simd_cast<T, U>(x: T) -> U;
--
--    pub fn simd_add<T>(x: T, y: T) -> T;
--    pub fn simd_sub<T>(x: T, y: T) -> T;
--    pub fn simd_mul<T>(x: T, y: T) -> T;
--    pub fn simd_div<T>(x: T, y: T) -> T;
--    pub fn simd_shl<T>(x: T, y: T) -> T;
--    pub fn simd_shr<T>(x: T, y: T) -> T;
--    pub fn simd_and<T>(x: T, y: T) -> T;
*** 362 LINES SKIPPED ***