From 1fc9b65b3fc07b7a181358da2fca5e51fef554b7 Mon Sep 17 00:00:00 2001 From: Alexander Koz Date: Fri, 12 Jul 2024 21:32:14 +0400 Subject: [PATCH 1/3] update toolchain and deps --- Cargo.lock | 293 +++++++++++++++++++------------------- cargo/Cargo.toml | 4 +- rust-toolchain.toml | 2 +- support/device/Cargo.toml | 4 +- support/utils/Cargo.toml | 4 +- 5 files changed, 156 insertions(+), 151 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2662af05..3b847f64 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -333,7 +333,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -344,13 +344,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.80" +version = "0.1.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" +checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -483,7 +483,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.68", + "syn 2.0.71", "which 4.4.2", ] @@ -805,9 +805,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.100" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c891175c3fb232128f48de6590095e59198bbeb8620c310be349bfc3afd12c7b" +checksum = "907d8581360765417f8f2e0e7d602733bbed60156b4465b7617243689ef9b83d" dependencies = [ "jobserver", "libc", @@ -864,9 +864,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.7" +version = "4.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5db83dced34638ad474f39f250d7fea9598bdd239eaced1bdf45d597da0f433f" +checksum = "64acc1846d54c1fe936a78dc189c34e28d3f5afc348403f28ecf53660b9b8462" dependencies = [ "clap_builder", "clap_derive", @@ -874,9 +874,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.7" +version = "4.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7e204572485eb3fbf28f871612191521df159bc3e15a9f5064c66dba3a8c05f" +checksum = "6fb8393d67ba2e7bfaf28a23458e4e2b543cc73a99595511eb207fdb8aede942" dependencies = [ "anstream", "anstyle", @@ -889,14 +889,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.5" +version = "4.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c780290ccf4fb26629baa7a1081e68ced113f1d3ec302fa5948f1c381ebf06c6" +checksum = "2bac35c6dafb060fd4d275d9a4ffae97917c13a6327903a8be2153cd964f7085" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -929,7 +929,7 @@ dependencies = [ "nom", "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -1197,9 +1197,9 @@ dependencies = [ [[package]] name = "curl-sys" -version = "0.4.72+curl-8.6.0" +version = "0.4.73+curl-8.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29cbdc8314c447d11e8fd156dcdd031d9e02a7a976163e396b548c03153bc9ea" +checksum = "450ab250ecf17227c39afb9a2dd9261dc0035cb80f2612472fc0c4aac2dcb84d" dependencies = [ "cc", "libc", @@ -1267,7 +1267,7 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -1311,7 +1311,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -1357,9 +1357,9 @@ dependencies = [ [[package]] name = "either" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "eject" @@ -1707,7 +1707,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -1864,9 +1864,9 @@ dependencies = [ [[package]] name = "gix-actor" -version = "0.31.2" +version = "0.31.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d69c59d392c7e6c94385b6fd6089d6df0fe945f32b4357687989f3aee253cd7f" +checksum = "d9b8ee65074b2bbb91d9d97c15d172ea75043aefebf9869b5b329149dc76501c" dependencies = [ "bstr", "gix-date", @@ -2195,7 +2195,7 @@ checksum = "999ce923619f88194171a67fb3e6d613653b8d4d6078b529b15a765da0edcc17" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -2216,9 +2216,9 @@ dependencies = [ [[package]] name = "gix-object" -version = "0.42.2" +version = "0.42.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fe2dc4a41191c680c942e6ebd630c8107005983c4679214fdb1007dcf5ae1df" +checksum = "25da2f46b4e7c2fa7b413ce4dffb87f69eaf89c2057e386491f4c55cadbfe386" dependencies = [ "bstr", "gix-actor", @@ -2817,9 +2817,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.29" +version = "0.14.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33" +checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" dependencies = [ "bytes", "futures-channel", @@ -3084,7 +3084,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -3153,7 +3153,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e310b3a6b5907f99202fcdb4960ff45b93735d7c7d96b760fcff8db2dc0e103d" dependencies = [ "cfg-if", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -3239,12 +3239,6 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "line-wrap" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd1bc4d24ad230d21fb898d1116b1801d7adfc449d42026475862ab48b11e70e" - [[package]] name = "linux-raw-sys" version = "0.3.8" @@ -3275,9 +3269,9 @@ checksum = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e" [[package]] name = "log" -version = "0.4.21" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" dependencies = [ "value-bag", ] @@ -3356,7 +3350,7 @@ checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -3426,7 +3420,7 @@ checksum = "dcf09caffaac8068c346b6df2a7fc27a177fd20b39421a39ce0a211bde679a6c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -3634,9 +3628,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "576dfe1fc8f9df304abb159d767a29d0476f7750fbf8aa7ad07816004a207434" +checksum = "081b846d1d56ddfc18fdf1a922e4f6e07a11768ea1b92dec44e42b72712ccfce" dependencies = [ "memchr", ] @@ -3797,7 +3791,7 @@ dependencies = [ "libc", "redox_syscall 0.5.2", "smallvec", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -3976,7 +3970,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -4057,7 +4051,7 @@ dependencies = [ "proc-macro2", "quote", "semver", - "syn 2.0.68", + "syn 2.0.71", "which 6.0.1", ] @@ -4087,7 +4081,7 @@ dependencies = [ [[package]] name = "playdate-build-utils" -version = "0.3.3" +version = "0.3.4" dependencies = [ "dirs", "log", @@ -4113,7 +4107,7 @@ dependencies = [ [[package]] name = "playdate-device" -version = "0.2.11" +version = "0.2.12" dependencies = [ "async-std", "clap", @@ -4138,7 +4132,7 @@ dependencies = [ "tracing", "udev", "usb-ids", - "windows 0.57.0", + "windows 0.58.0", ] [[package]] @@ -4297,13 +4291,12 @@ dependencies = [ [[package]] name = "plist" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9d34169e64b3c7a80c8621a48adaf44e0cf62c78a9b25dd9dd35f1881a17cf9" +checksum = "42cf17e9a1800f5f396bc67d193dc9411b59012a5876445ef450d449881e1016" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "indexmap 2.2.6", - "line-wrap", "quick-xml", "serde", "time", @@ -4374,7 +4367,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" dependencies = [ "proc-macro2", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -4440,7 +4433,7 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -4454,9 +4447,9 @@ dependencies = [ [[package]] name = "quick-xml" -version = "0.31.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33" +checksum = "1d3a6e5838b60e0e8fa7a43f22ade549a37d61f8bdbe636d0d7816191de969c2" dependencies = [ "memchr", ] @@ -4745,7 +4738,7 @@ checksum = "7f81c2fde025af7e69b1d1420531c8a8811ca898919db177141a85313b1cb932" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -4796,9 +4789,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.203" +version = "1.0.204" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" +checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" dependencies = [ "serde_derive", ] @@ -4826,13 +4819,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.203" +version = "1.0.204" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" +checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -4846,9 +4839,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.118" +version = "1.0.120" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d947f6b3163d8857ea16c4fa0dd4840d52f3041039a85decd46867eb1abef2e4" +checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5" dependencies = [ "itoa", "ryu", @@ -4866,9 +4859,9 @@ dependencies = [ [[package]] name = "serialport" -version = "4.3.0" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f5a15d0be940df84846264b09b51b10b931fb2f275becb80934e3568a016828" +checksum = "de7c4f0cce25b9b3518eea99618112f9ee4549f974480c8f43d3c06f03c131a0" dependencies = [ "bitflags 2.6.0", "cfg-if", @@ -5227,9 +5220,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.68" +version = "2.0.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "901fa70d88b9d6c98022e23b4136f9f3e54e4662c3bc1bd1d84a42a9a0f0c1e9" +checksum = "b146dcf730474b4bcd16c311627b31ede9ab149045db4d6088b3becaea046462" dependencies = [ "proc-macro2", "quote", @@ -5304,22 +5297,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.61" +version = "1.0.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" +checksum = "f2675633b1499176c2dff06b0856a27976a8f9d436737b4cf4f312d4d91d8bbb" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.61" +version = "1.0.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" +checksum = "d20468752b09f49e909e55a5d338caa8bedf615594e9d80bc4c565d30faf798c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -5367,9 +5360,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.6.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c55115c6fbe2d2bef26eb09ad74bde02d8255476fc0c7b515ef09fbb35742d82" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" dependencies = [ "tinyvec_macros", ] @@ -5418,7 +5411,7 @@ checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -5481,9 +5474,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.14" +version = "0.22.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38" +checksum = "d59a3a72298453f564e2b111fa896f8d07fabb36f51f06d7e875fc5e0b5a3ef1" dependencies = [ "indexmap 2.2.6", "serde", @@ -5570,7 +5563,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -5667,9 +5660,9 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unescaper" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0adf6ad32eb5b3cadff915f7b770faaac8f7ff0476633aa29eb0d9584d889d34" +checksum = "c878a167baa8afd137494101a688ef8c67125089ff2249284bd2b5f9bfedb815" dependencies = [ "thiserror", ] @@ -5741,9 +5734,9 @@ dependencies = [ [[package]] name = "usb-ids" -version = "1.2024.3" +version = "1.2024.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccaea350f6514f904c435feea0ea5a6cecdcb47aaf377745423c1694a01f5785" +checksum = "8fbafa81873964b6fb260b7d7d4da4dcb59b58aaa9e713dcbacf162862984f63" dependencies = [ "nom", "phf 0.11.2", @@ -5766,9 +5759,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.9.1" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de17fd2f7da591098415cff336e12965a28061ddace43b59cb3c430179c9439" +checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" [[package]] name = "valuable" @@ -5846,7 +5839,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", "wasm-bindgen-shared", ] @@ -5880,7 +5873,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -6010,65 +6003,77 @@ dependencies = [ [[package]] name = "windows" -version = "0.57.0" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" +checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" dependencies = [ "windows-core", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] name = "windows-core" -version = "0.57.0" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" +checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" dependencies = [ "windows-implement", "windows-interface", "windows-result", - "windows-targets 0.52.5", + "windows-strings", + "windows-targets 0.52.6", ] [[package]] name = "windows-implement" -version = "0.57.0" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" +checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] name = "windows-interface" -version = "0.57.0" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" +checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] name = "windows-registry" -version = "0.1.2" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acc134c90a0318d873ec962b13149e9c862ff0d2669082a709a4810167a3c6ee" +checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" dependencies = [ "windows-result", - "windows-targets 0.52.5", + "windows-strings", + "windows-targets 0.52.6", ] [[package]] name = "windows-result" -version = "0.1.2" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result", + "windows-targets 0.52.6", ] [[package]] @@ -6086,7 +6091,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -6106,18 +6111,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.5", - "windows_aarch64_msvc 0.52.5", - "windows_i686_gnu 0.52.5", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", "windows_i686_gnullvm", - "windows_i686_msvc 0.52.5", - "windows_x86_64_gnu 0.52.5", - "windows_x86_64_gnullvm 0.52.5", - "windows_x86_64_msvc 0.52.5", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] [[package]] @@ -6128,9 +6133,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" @@ -6146,9 +6151,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" @@ -6164,15 +6169,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" @@ -6188,9 +6193,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" @@ -6206,9 +6211,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" @@ -6218,9 +6223,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" @@ -6236,9 +6241,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" @@ -6268,22 +6273,22 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.7.34" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.34" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -6303,7 +6308,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -6351,27 +6356,27 @@ dependencies = [ [[package]] name = "zstd" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d789b1514203a1120ad2429eae43a7bd32b90976a7bb8a05f7ec02fa88cc23a" +checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "7.1.0" +version = "7.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd99b45c6bc03a018c8b8a86025678c87e55526064e38f9df301989dce7ec0a" +checksum = "fa556e971e7b568dc775c136fc9de8c779b1c2fc3a63defaafadffdbd3181afa" dependencies = [ "zstd-sys", ] [[package]] name = "zstd-sys" -version = "2.0.11+zstd.1.5.6" +version = "2.0.12+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75652c55c0b6f3e6f12eb786fe1bc960396bf05a1eb3bf1f3691c3610ac2e6d4" +checksum = "0a4e40c320c3cb459d9a9ff6de98cff88f4751ee9275d140e2be94a2b74e4c13" dependencies = [ "cc", "pkg-config", diff --git a/cargo/Cargo.toml b/cargo/Cargo.toml index 7622ad82..1d6c5745 100644 --- a/cargo/Cargo.toml +++ b/cargo/Cargo.toml @@ -31,7 +31,7 @@ clap_lex = "0.7" dirs.workspace = true fs_extra.workspace = true -cargo = "0.80" +cargo = "0.80.0" cargo-util = "0.2.11" cargo-platform = "0.1.8" cargo-util-schemas = "0.3.0" @@ -89,7 +89,7 @@ features = [ [dev-dependencies] -target = "2.0.1" +target = "2.1" rand = "0.8" [target.'cfg(unix)'.dev-dependencies] diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 01652420..6c05ab23 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,5 +1,5 @@ [toolchain] -channel = "nightly-2024-05-28" +channel = "nightly-2024-06-30" profile = "minimal" targets = ["thumbv7em-none-eabihf"] components = [ diff --git a/support/device/Cargo.toml b/support/device/Cargo.toml index 365bcbed..4182813c 100644 --- a/support/device/Cargo.toml +++ b/support/device/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "playdate-device" -version = "0.2.11" +version = "0.2.12" readme = "README.md" description = "Cross-platform interface Playdate device, async & blocking." keywords = ["playdate", "usb", "serial"] @@ -80,7 +80,7 @@ version = "0.1" optional = true [target.'cfg(target_os = "windows")'.dependencies.windows] -version = "0.57" +version = "0.58" features = [ "Win32_Foundation", "Win32_Storage", diff --git a/support/utils/Cargo.toml b/support/utils/Cargo.toml index 51a7802c..8d94d92c 100644 --- a/support/utils/Cargo.toml +++ b/support/utils/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "playdate-build-utils" -version = "0.3.3" +version = "0.3.4" readme = "README.md" description = "Utils that help to build program with Rust and Playdate API" keywords = ["playdate", "utility"] @@ -17,7 +17,7 @@ dirs.workspace = true log = { workspace = true, optional = true } [target.'cfg(target_os = "windows")'.dependencies.windows-registry] -version = "0.1" +version = "0.2" [features] default = ["log", "cargo-message"] From 549fc34b2dc4ab706c18aae165a9132932750bda Mon Sep 17 00:00:00 2001 From: Alexander Koz Date: Fri, 12 Jul 2024 21:38:53 +0400 Subject: [PATCH 2/3] fix panic, update readme --- Cargo.lock | 2 +- api/sys/Cargo.toml | 2 +- api/sys/README.md | 3 +++ api/sys/src/sys/panic.rs | 19 +------------------ 4 files changed, 6 insertions(+), 20 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3b847f64..c90b0025 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4241,7 +4241,7 @@ dependencies = [ [[package]] name = "playdate-sys" -version = "0.4.2" +version = "0.4.3" dependencies = [ "arrayvec", "playdate-bindgen", diff --git a/api/sys/Cargo.toml b/api/sys/Cargo.toml index 8cb37a95..22c60c60 100644 --- a/api/sys/Cargo.toml +++ b/api/sys/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "playdate-sys" -version = "0.4.2" +version = "0.4.3" build = "src/build.rs" readme = "README.md" description = "Low-level Playdate API bindings" diff --git a/api/sys/README.md b/api/sys/README.md index 3c2f3126..f1dd194a 100644 --- a/api/sys/README.md +++ b/api/sys/README.md @@ -23,6 +23,8 @@ _I've experimented enough with wrapping the entire API with results at every ste ## Prerequisites +MNRV is [`1.81.0` from 2024-06-29][rust-toolchain.toml] + 1. Rust __nightly__ toolchain (rustup is optional) 1. [Playdate SDK][sdk] - Ensure that env var `PLAYDATE_SDK_PATH` points to the SDK root @@ -31,6 +33,7 @@ _I've experimented enough with wrapping the entire API with results at every ste [sdk]: https://play.date/dev/#cardSDK [doc-prerequisites]: https://sdk.play.date/Inside%20Playdate%20with%20C.html#_prerequisites +[rust-toolchain.toml]: https://github.com/boozook/playdate/blob/main/rust-toolchain.toml#L2 ## Usage diff --git a/api/sys/src/sys/panic.rs b/api/sys/src/sys/panic.rs index 239e08ac..930c2f34 100644 --- a/api/sys/src/sys/panic.rs +++ b/api/sys/src/sys/panic.rs @@ -11,23 +11,6 @@ use super::proc::error; #[panic_handler] fn panic(panic_info: &PanicInfo) -> ! { let mut output = ArrayString::<1024>::new(); - let payload = if let Some(payload) = panic_info.payload().downcast_ref::<&str>() { - payload - } else { - "" - }; - - let location = panic_info.location(); - let (module, line) = if let Some(location) = location { - (location.file(), location.line()) - } else { - ("", 0) - }; - - let _ = if let Some(message) = panic_info.message() { - write!(output, "PANIC: [{module}@{line}] \"{message}\" {payload}\0") - } else { - write!(output, "PANIC: [{module}@{line}] {payload}\0") - }; + let _ = write!(output, "{panic_info}\0"); error(output.as_str()); } From 6529a84799f70884e2fc64667d2bc0ca6e6250d3 Mon Sep 17 00:00:00 2001 From: Alexander Koz Date: Sat, 13 Jul 2024 11:46:46 +0400 Subject: [PATCH 3/3] fix const_trait usage, CI fixes, fmt, because some nightly rustfmt fixes --- .github/workflows/tests.yml | 30 ++------ Cargo.lock | 26 +++---- api/color/Cargo.toml | 2 +- api/color/src/lib.rs | 50 +++++++++---- api/ctrl/Cargo.toml | 2 +- api/ctrl/src/buttons.rs | 2 +- api/ctrl/src/peripherals.rs | 4 +- api/fs/Cargo.toml | 2 +- api/fs/src/lib.rs | 1 - api/fs/src/options.rs | 4 +- api/gfx/Cargo.toml | 2 +- api/gfx/src/lib.rs | 1 - api/lua/Cargo.toml | 2 +- api/lua/src/lib.rs | 1 - api/menu/Cargo.toml | 2 +- api/menu/src/lib.rs | 1 - api/playdate/Cargo.toml | 2 +- api/scoreboards/Cargo.toml | 2 +- api/scoreboards/src/lib.rs | 1 - api/sound/Cargo.toml | 2 +- api/sound/src/lib.rs | 1 - api/sys/README.md | 2 +- api/sys/src/lib.rs | 1 - cargo/Cargo.toml | 2 +- cargo/src/build/mod.rs | 121 ++++++++++++++++---------------- cargo/src/config.rs | 13 ++-- cargo/src/init/mod.rs | 7 +- cargo/src/package/mod.rs | 2 +- support/device/Cargo.toml | 2 +- support/device/src/mount/win.rs | 16 ++--- support/device/src/usb/mod.rs | 9 +-- 31 files changed, 157 insertions(+), 158 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 75d1d6e9..0a4c8e5e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -475,31 +475,11 @@ jobs: - name: Check id: check - continue-on-error: true - run: >- - cargo fmt --all -- --check || - (echo "::error::Rust format error." && exit 1) - - - name: Format - id: format - if: steps.check.outcome == 'failure' - run: cargo fmt --all - - - name: Suggestions - uses: reviewdog/action-suggester@v1 - with: - filter_mode: diff_context - fail_on_error: false - tool_name: Rustfmt - cleanup: false - - - name: Post Check - if: steps.check.outcome == 'failure' - run: exit 1 + run: cargo fmt --all -- --check clippy: - name: Clippy - if: github.event_name == 'pull_request' + name: Clippy + fmt suggestions + if: github.event_name == 'pull_request' || github.event_name == 'pull_request_target' defaults: run: shell: bash @@ -521,7 +501,6 @@ jobs: - uses: actions/checkout@v4 with: ref: ${{ inputs.ref || github.ref }} - # fetch-depth: 2 - name: Install Clippy run: rustup component add clippy @@ -557,7 +536,6 @@ jobs: -p=playdate-tool --bins --examples --all-targets -- -Aclippy::cargo - || (echo "::error::Rust format error." && exit 1) # needed after clippy fix - name: fmt @@ -572,6 +550,6 @@ jobs: with: filter_mode: diff_context fail_on_error: false - tool_name: Clippy + tool_name: Clippy & fmt cleanup: false diff --git a/Cargo.lock b/Cargo.lock index c90b0025..9e58f442 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -729,7 +729,7 @@ dependencies = [ [[package]] name = "cargo-playdate" -version = "0.5.0" +version = "0.5.1" dependencies = [ "anstyle", "anyhow", @@ -805,9 +805,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "907d8581360765417f8f2e0e7d602733bbed60156b4465b7617243689ef9b83d" +checksum = "47de7e88bbbd467951ae7f5a6f34f70d1b4d9cfce53d5fd70f74ebe118b3db56" dependencies = [ "jobserver", "libc", @@ -4020,7 +4020,7 @@ checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" [[package]] name = "playdate" -version = "0.2.1" +version = "0.2.2" dependencies = [ "playdate-controls", "playdate-display", @@ -4090,14 +4090,14 @@ dependencies = [ [[package]] name = "playdate-color" -version = "0.2.4" +version = "0.2.5" dependencies = [ "playdate-sys", ] [[package]] name = "playdate-controls" -version = "0.3.5" +version = "0.3.6" dependencies = [ "playdate-display", "playdate-graphics", @@ -4107,7 +4107,7 @@ dependencies = [ [[package]] name = "playdate-device" -version = "0.2.12" +version = "0.2.13" dependencies = [ "async-std", "clap", @@ -4144,7 +4144,7 @@ dependencies = [ [[package]] name = "playdate-fs" -version = "0.2.8" +version = "0.2.9" dependencies = [ "playdate-sys", "playdate-system", @@ -4152,7 +4152,7 @@ dependencies = [ [[package]] name = "playdate-graphics" -version = "0.4.0" +version = "0.4.1" dependencies = [ "playdate-color", "playdate-display", @@ -4163,7 +4163,7 @@ dependencies = [ [[package]] name = "playdate-lua" -version = "0.1.1" +version = "0.1.2" dependencies = [ "playdate-sys", "playdate-system", @@ -4171,7 +4171,7 @@ dependencies = [ [[package]] name = "playdate-menu" -version = "0.2.4" +version = "0.2.5" dependencies = [ "playdate-graphics", "playdate-sys", @@ -4180,7 +4180,7 @@ dependencies = [ [[package]] name = "playdate-scoreboards" -version = "0.1.2" +version = "0.1.3" dependencies = [ "erased_set", "playdate-sys", @@ -4201,7 +4201,7 @@ dependencies = [ [[package]] name = "playdate-sound" -version = "0.4.1" +version = "0.4.2" dependencies = [ "playdate-fs", "playdate-graphics", diff --git a/api/color/Cargo.toml b/api/color/Cargo.toml index 8c255531..22934d7a 100644 --- a/api/color/Cargo.toml +++ b/api/color/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "playdate-color" -version = "0.2.4" +version = "0.2.5" readme = "README.md" description = "Color extension for Playdate API" keywords = ["playdate", "sdk", "api", "gamedev"] diff --git a/api/color/src/lib.rs b/api/color/src/lib.rs index 4b910613..c6b62108 100644 --- a/api/color/src/lib.rs +++ b/api/color/src/lib.rs @@ -46,10 +46,10 @@ impl<'t> TryFrom for Color<'t> fn try_from(color: LCDColor) -> Result { match color { - 0 => Ok(Self::Solid(LCDSolidColor::Black())), - 1 => Ok(Self::Solid(LCDSolidColor::White())), - 2 => Ok(Self::Solid(LCDSolidColor::Clear())), - 3 => Ok(Self::Solid(LCDSolidColor::XOR())), + 0 => Ok(Self::Solid(LCDSolidColor::BLACK)), + 1 => Ok(Self::Solid(LCDSolidColor::WHITE)), + 2 => Ok(Self::Solid(LCDSolidColor::CLEAR)), + 3 => Ok(Self::Solid(::XOR)), color => { NonNull::new(color as *mut LCDPattern).ok_or(NullPtrError) .map(|nn| Self::Pattern(unsafe { nn.as_ref() })) @@ -63,7 +63,8 @@ impl<'t> From<&'t LCDPattern> for Color<'t> { } -#[const_trait] +// TODO: LCDColorExt should be const_trait +#[deprecated = "Useless until const_trait is experimental and incomplete. Use LCDColorConst instead."] pub trait LCDColorExt { #![allow(non_snake_case)] fn White() -> Self; @@ -72,7 +73,8 @@ pub trait LCDColorExt { fn XOR() -> Self; } -impl const LCDColorExt for LCDColor { +#[allow(deprecated)] +impl LCDColorExt for LCDColor { #![allow(non_snake_case)] fn White() -> Self { LCDSolidColor::kColorWhite as Self } fn Black() -> Self { LCDSolidColor::kColorBlack as Self } @@ -80,7 +82,8 @@ impl const LCDColorExt for LCDColor { fn XOR() -> Self { LCDSolidColor::kColorXOR as Self } } -impl const LCDColorExt for LCDSolidColor { +#[allow(deprecated)] +impl LCDColorExt for LCDSolidColor { #![allow(non_snake_case)] fn White() -> Self { LCDSolidColor::kColorWhite } fn Black() -> Self { LCDSolidColor::kColorBlack } @@ -88,14 +91,35 @@ impl const LCDColorExt for LCDSolidColor { fn XOR() -> Self { LCDSolidColor::kColorXOR } } +pub trait LCDColorConst { + const WHITE: Self; + const BLACK: Self; + const CLEAR: Self; + const XOR: Self; +} + +impl LCDColorConst for LCDColor { + const WHITE: Self = LCDSolidColor::kColorWhite as Self; + const BLACK: Self = LCDSolidColor::kColorBlack as Self; + const CLEAR: Self = LCDSolidColor::kColorClear as Self; + const XOR: Self = LCDSolidColor::kColorXOR as Self; +} + +impl LCDColorConst for LCDSolidColor { + const WHITE: Self = LCDSolidColor::kColorWhite as Self; + const BLACK: Self = LCDSolidColor::kColorBlack as Self; + const CLEAR: Self = LCDSolidColor::kColorClear as Self; + const XOR: Self = LCDSolidColor::kColorXOR as Self; +} + -#[const_trait] +// TODO: LCDColorIs should be const_trait pub trait LCDColorIs { fn is_solid(&self) -> bool; fn is_pattern(&self) -> bool; } -impl const LCDColorIs for LCDColor { +impl LCDColorIs for LCDColor { fn is_solid(&self) -> bool { let color = *self as usize; color >= LCDSolidColor::kColorBlack as _ && color <= LCDSolidColor::kColorXOR as _ @@ -104,12 +128,12 @@ impl const LCDColorIs for LCDColor { } -#[const_trait] +// TODO: IntoLCDColor should be const_trait pub trait IntoLCDColor { fn into_color(self) -> LCDColor; } -impl const IntoLCDColor for LCDSolidColor { +impl IntoLCDColor for LCDSolidColor { fn into_color(self) -> LCDColor { self as LCDColor } } @@ -119,13 +143,13 @@ impl<'t> IntoLCDColor for &'t LCDPattern where LCDColor: 't { } -#[const_trait] +// TODO: LCDColorFmt should be const_trait pub trait LCDColorFmt<'t> { type Display: 't + core::fmt::Debug + core::fmt::Display; fn display(&'t self) -> Self::Display; } -impl<'t> const LCDColorFmt<'t> for LCDSolidColor { +impl<'t> LCDColorFmt<'t> for LCDSolidColor { type Display = LCDColorDisplay<'t, Self>; fn display(&self) -> LCDColorDisplay<'_, Self> { LCDColorDisplay(self) } } diff --git a/api/ctrl/Cargo.toml b/api/ctrl/Cargo.toml index 16b6cd5c..55f1454d 100644 --- a/api/ctrl/Cargo.toml +++ b/api/ctrl/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "playdate-controls" -version = "0.3.5" +version = "0.3.6" readme = "README.md" description = "High-level controls API built on-top of Playdate API" keywords = ["playdate", "sdk", "api", "gamedev"] diff --git a/api/ctrl/src/buttons.rs b/api/ctrl/src/buttons.rs index 9f4bb131..1655bf36 100644 --- a/api/ctrl/src/buttons.rs +++ b/api/ctrl/src/buttons.rs @@ -58,7 +58,7 @@ pub trait PDButtonsExt: Sized + BitAnd { } -impl const PDButtonsExt for PDButtons { +impl PDButtonsExt for PDButtons { #![allow(non_snake_case)] #[inline(always)] diff --git a/api/ctrl/src/peripherals.rs b/api/ctrl/src/peripherals.rs index 14624dfd..38a7c44d 100644 --- a/api/ctrl/src/peripherals.rs +++ b/api/ctrl/src/peripherals.rs @@ -86,7 +86,7 @@ impl Peripherals { } -#[const_trait] +// TODO: SystemExt should be const_trait pub trait SystemExt { fn peripherals(&self) -> Peripherals; fn accelerometer(&self) -> Accelerometer; @@ -94,7 +94,7 @@ pub trait SystemExt { fn crank(&self) -> Crank; } -impl const SystemExt for system::System { +impl SystemExt for system::System { fn peripherals(&self) -> Peripherals { Peripherals::new_with(self.inner()) } fn accelerometer(&self) -> Accelerometer { Accelerometer::new_with(self.inner()) } fn buttons(&self) -> Buttons { Buttons::new_with(self.inner()) } diff --git a/api/fs/Cargo.toml b/api/fs/Cargo.toml index 0678b53f..ab46e049 100644 --- a/api/fs/Cargo.toml +++ b/api/fs/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "playdate-fs" -version = "0.2.8" +version = "0.2.9" readme = "README.md" description = "High-level file-system API built on-top of Playdate API" keywords = ["playdate", "sdk", "api", "gamedev"] diff --git a/api/fs/src/lib.rs b/api/fs/src/lib.rs index 8dfdac81..41eb4762 100644 --- a/api/fs/src/lib.rs +++ b/api/fs/src/lib.rs @@ -1,5 +1,4 @@ #![cfg_attr(not(test), no_std)] -#![feature(error_in_core)] #![feature(const_trait_impl)] #[macro_use] diff --git a/api/fs/src/options.rs b/api/fs/src/options.rs index 5626351f..874cf79f 100644 --- a/api/fs/src/options.rs +++ b/api/fs/src/options.rs @@ -7,7 +7,7 @@ use crate::error::ApiError; /// Extension for [`sys::ffi::FileOptions`] make it looks like [`std::fs::OpenOptions`]. -#[const_trait] +// TODO: FileOptionsExt should be const_trait pub trait FileOptionsExt: Into { /// Creates new empty file options. fn new() -> Self; @@ -55,7 +55,7 @@ impl OpenOptions for FileOptions { } -impl const FileOptionsExt for FileOptions { +impl FileOptionsExt for FileOptions { fn new() -> Self { FileOptions(0) } /// Read access to Game’s package (bundle) directory. diff --git a/api/gfx/Cargo.toml b/api/gfx/Cargo.toml index 797d1ca0..b032e9ec 100644 --- a/api/gfx/Cargo.toml +++ b/api/gfx/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "playdate-graphics" -version = "0.4.0" +version = "0.4.1" readme = "README.md" description = "High-level graphics API built on-top of Playdate API" keywords = ["playdate", "sdk", "api", "gamedev"] diff --git a/api/gfx/src/lib.rs b/api/gfx/src/lib.rs index 9fe6f18f..b44e1366 100644 --- a/api/gfx/src/lib.rs +++ b/api/gfx/src/lib.rs @@ -1,6 +1,5 @@ //! Playdate graphics API #![cfg_attr(not(test), no_std)] -#![feature(error_in_core)] extern crate sys; extern crate alloc; diff --git a/api/lua/Cargo.toml b/api/lua/Cargo.toml index 23630f93..979daa22 100644 --- a/api/lua/Cargo.toml +++ b/api/lua/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "playdate-lua" -version = "0.1.1" +version = "0.1.2" readme = "README.md" description = "High-level Lua API built on-top of Playdate API" keywords = ["playdate", "sdk", "api", "gamedev"] diff --git a/api/lua/src/lib.rs b/api/lua/src/lib.rs index 79fc4f3f..3a33d7c2 100644 --- a/api/lua/src/lib.rs +++ b/api/lua/src/lib.rs @@ -1,5 +1,4 @@ #![cfg_attr(not(test), no_std)] -#![feature(error_in_core)] // #[macro_use] extern crate sys; diff --git a/api/menu/Cargo.toml b/api/menu/Cargo.toml index 6e513841..59d2e4c5 100644 --- a/api/menu/Cargo.toml +++ b/api/menu/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "playdate-menu" -version = "0.2.4" +version = "0.2.5" readme = "README.md" description = "High-level system menu API built on-top of Playdate API" keywords = ["playdate", "sdk", "api", "gamedev"] diff --git a/api/menu/src/lib.rs b/api/menu/src/lib.rs index d79b1137..8789a2e4 100644 --- a/api/menu/src/lib.rs +++ b/api/menu/src/lib.rs @@ -1,5 +1,4 @@ #![cfg_attr(not(test), no_std)] -#![feature(error_in_core)] #[macro_use] extern crate sys; diff --git a/api/playdate/Cargo.toml b/api/playdate/Cargo.toml index c0697f91..af486b37 100644 --- a/api/playdate/Cargo.toml +++ b/api/playdate/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "playdate" -version = "0.2.1" +version = "0.2.2" readme = "README.md" description = "High-level Playdate API" keywords = ["playdate", "sdk", "api", "gamedev"] diff --git a/api/scoreboards/Cargo.toml b/api/scoreboards/Cargo.toml index 4040c8af..936f692a 100644 --- a/api/scoreboards/Cargo.toml +++ b/api/scoreboards/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "playdate-scoreboards" -version = "0.1.2" +version = "0.1.3" readme = "README.md" description = "High-level Scoreboards API built on-top of Playdate API" keywords = ["playdate", "sdk", "api", "gamedev"] diff --git a/api/scoreboards/src/lib.rs b/api/scoreboards/src/lib.rs index 1dac4125..82f51ca2 100644 --- a/api/scoreboards/src/lib.rs +++ b/api/scoreboards/src/lib.rs @@ -4,7 +4,6 @@ //! [Official documentation](https://help.play.date/catalog-developer/scoreboard-api/#c-api-reference). #![cfg_attr(not(test), no_std)] -#![feature(error_in_core)] #[macro_use] extern crate sys; diff --git a/api/sound/Cargo.toml b/api/sound/Cargo.toml index ff7f8439..f9bdf8d6 100644 --- a/api/sound/Cargo.toml +++ b/api/sound/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "playdate-sound" -version = "0.4.1" +version = "0.4.2" readme = "README.md" description = "High-level sound API built on-top of Playdate API" keywords = ["playdate", "sdk", "api", "gamedev"] diff --git a/api/sound/src/lib.rs b/api/sound/src/lib.rs index bacd5db2..2bad57c6 100644 --- a/api/sound/src/lib.rs +++ b/api/sound/src/lib.rs @@ -1,5 +1,4 @@ #![cfg_attr(not(test), no_std)] -#![feature(error_in_core)] #![feature(const_trait_impl)] use core::ffi::c_int; diff --git a/api/sys/README.md b/api/sys/README.md index f1dd194a..1ecf5117 100644 --- a/api/sys/README.md +++ b/api/sys/README.md @@ -23,7 +23,7 @@ _I've experimented enough with wrapping the entire API with results at every ste ## Prerequisites -MNRV is [`1.81.0` from 2024-06-29][rust-toolchain.toml] +MNRV is [`1.81.0` from 2024-06-30][rust-toolchain.toml] 1. Rust __nightly__ toolchain (rustup is optional) 1. [Playdate SDK][sdk] diff --git a/api/sys/src/lib.rs b/api/sys/src/lib.rs index 72c29cea..035a721e 100644 --- a/api/sys/src/lib.rs +++ b/api/sys/src/lib.rs @@ -11,7 +11,6 @@ #![cfg_attr(feature = "allocator", feature(allocator_api))] #![cfg_attr(feature = "allocator", feature(alloc_layout_extra))] // error -#![feature(error_in_core)] #![cfg_attr(feature = "try-trait-v2", feature(try_trait_v2))] // experimental features #![cfg_attr(feature = "bindings-derive-constparamty", diff --git a/cargo/Cargo.toml b/cargo/Cargo.toml index 1d6c5745..4c316562 100644 --- a/cargo/Cargo.toml +++ b/cargo/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cargo-playdate" -version = "0.5.0" +version = "0.5.1" readme = "README.md" description = "Build tool for neat yellow console." keywords = ["playdate", "build", "cargo", "plugin", "cargo-subcommand"] diff --git a/cargo/src/build/mod.rs b/cargo/src/build/mod.rs index a5bf89b1..aa363341 100644 --- a/cargo/src/build/mod.rs +++ b/cargo/src/build/mod.rs @@ -210,53 +210,53 @@ pub fn build(cfg: &Config, tree: &MetaDeps) -> CargoResult> { let mut crate_types_cache = BTreeMap::new(); let removed = roots.extract_if(|root| { - let tk = root.node().target().kind(); - let ck = root.node().unit().platform; - - log::trace!(" check {} {}", tk.description(), match ck { - CompileKind::Host => "host", - CompileKind::Target(ref kind) => kind.short_name(), - }); - - if reserved_roots.contains(root) { - log::trace!(" excluding, reserved root"); - return true; - } - - { - use cargo::core::TargetKind as Tk; - if executable && !matches!(tk, Tk::Bin | Tk::ExampleBin) { - log::trace!(" excluding, is not executable"); - return true; - } - } - - let target = targets_cache.entry(*root) - .or_insert_with(|| target_for_root(root)); - - let ct = determine_crate_types(cfg, art, target, tk.clone(), ck).collect::>(); - - let is_good = art.filenames.len() == ct.len() && - !ct.iter().any(|(_, ct)| ct.is_none()); - if is_good { - // save resolved crate-types: - let ct = ct.into_iter() - .filter_map(|(p, ct)| ct.map(|ct| (p.to_owned(), ct))); - crate_types_cache.extend(ct); - } - - need_remove_roots && !is_good - }) - .inspect(|r| { - let p = r.package_id().name(); - let t = r.node().target().name.as_str(); - log::trace!(" excluded: {p}::{t} {:?}", match r.node().unit().platform - { - CompileKind::Host => "host", - CompileKind::Target(ref kind) => kind.short_name(), - }) - }) - .count(); + let tk = root.node().target().kind(); + let ck = root.node().unit().platform; + + log::trace!(" check {} {}", tk.description(), match ck { + CompileKind::Host => "host", + CompileKind::Target(ref kind) => kind.short_name(), + }); + + if reserved_roots.contains(root) { + log::trace!(" excluding, reserved root"); + return true; + } + + { + use cargo::core::TargetKind as Tk; + if executable && !matches!(tk, Tk::Bin | Tk::ExampleBin) { + log::trace!(" excluding, is not executable"); + return true; + } + } + + let target = targets_cache.entry(*root) + .or_insert_with(|| target_for_root(root)); + + let ct = + determine_crate_types(cfg, art, target, tk.clone(), ck).collect::>(); + + let is_good = + art.filenames.len() == ct.len() && !ct.iter().any(|(_, ct)| ct.is_none()); + if is_good { + // save resolved crate-types: + let ct = ct.into_iter() + .filter_map(|(p, ct)| ct.map(|ct| (p.to_owned(), ct))); + crate_types_cache.extend(ct); + } + + need_remove_roots && !is_good + }) + .inspect(|r| { + let p = r.package_id().name(); + let t = r.node().target().name.as_str(); + log::trace!(" excluded: {p}::{t} {:?}", match r.node().unit().platform { + CompileKind::Host => "host", + CompileKind::Target(ref kind) => kind.short_name(), + }) + }) + .count(); if removed > 0 { log::trace!(" excluded: {removed}, now roots: {}", roots.len()); @@ -337,7 +337,7 @@ pub fn build(cfg: &Config, tree: &MetaDeps) -> CargoResult> { let ck_exact = ck_name.iter().copied().find(|ck| { comps.iter() - .all(|(_num, first)| matches!(first, Some(s) if *s == *ck)) + .all(|(_num, first)| matches!(first, Some(s) if *s == *ck)) }); let removed = if let Some(ck) = ck_exact { @@ -594,18 +594,19 @@ fn map_artifacts<'cargo, 'cfg, 't>(tree: &'t MetaDeps<'cfg>, artifacts.filter(|art| matches!(art.target.kind, TK::Lib(_) | TK::Bin | TK::Example)) .filter_map(move |art| { - let findings = tree.roots() - .iter() - .filter(|r| { - let unit = r.node().unit(); - unit.package_id == art.package_id && - unit.target.name.as_str() == art.target.name.as_str() && - unit.target.kind() == art.target.kind() && - unit.target.crate_types == art.target.crate_types && - Some(unit.target.src_path.as_str().into()) == art.target.src_path - }) - .inspect(|r| log::trace!("root for artifact found: {:?} {r}", art.target.crate_types)) - .collect::>(); + let findings = + tree.roots() + .iter() + .filter(|r| { + let unit = r.node().unit(); + unit.package_id == art.package_id && + unit.target.name.as_str() == art.target.name.as_str() && + unit.target.kind() == art.target.kind() && + unit.target.crate_types == art.target.crate_types && + Some(unit.target.src_path.as_str().into()) == art.target.src_path + }) + .inspect(|r| log::trace!("root for artifact found: {:?} {r}", art.target.crate_types)) + .collect::>(); (!findings.is_empty()).then_some((art, findings)) }) .filter(|(_, roots)| !roots.is_empty()) diff --git a/cargo/src/config.rs b/cargo/src/config.rs index 8345693e..adccf8d4 100644 --- a/cargo/src/config.rs +++ b/cargo/src/config.rs @@ -154,12 +154,13 @@ impl<'cfg> Config<'cfg> { pub fn gcc(&self) -> CargoResult<&ArmToolchain> { self.gcc.try_get_or_create(|| { - let res = (!self.no_gcc).then(|| { - self.gcc_path.as_ref().map_or_else(ArmToolchain::try_new, |p| { - Gcc::try_new_exact_path(p).and_then(ArmToolchain::try_new_with) - }) - }) - .ok_or_else(|| anyhow::anyhow!("Attempt to get arm-gcc but 'no-gcc' is set"))??; + let res = + (!self.no_gcc).then(|| { + self.gcc_path.as_ref().map_or_else(ArmToolchain::try_new, |p| { + Gcc::try_new_exact_path(p).and_then(ArmToolchain::try_new_with) + }) + }) + .ok_or_else(|| anyhow::anyhow!("Attempt to get arm-gcc but 'no-gcc' is set"))??; Ok(res) }) } diff --git a/cargo/src/init/mod.rs b/cargo/src/init/mod.rs index 485247ae..f367df4f 100644 --- a/cargo/src/init/mod.rs +++ b/cargo/src/init/mod.rs @@ -337,9 +337,10 @@ fn cargo_config>(config: &Config, path: P) -> CargoResult<()> { // default if !config.create_full_config { // target[].rustflags: - let rustflags: Vec = Rustflags::rustflags_bin_playdate().iter() - .map(|s| toml::Value::String(s.to_string())) - .collect(); + let rustflags: Vec = + Rustflags::rustflags_bin_playdate().iter() + .map(|s| toml::Value::String(s.to_string())) + .collect(); let mut target_table = toml::Table::new(); target_table.insert("rustflags".into(), rustflags.into()); diff --git a/cargo/src/package/mod.rs b/cargo/src/package/mod.rs index f2e71e91..7f49c660 100644 --- a/cargo/src/package/mod.rs +++ b/cargo/src/package/mod.rs @@ -87,7 +87,7 @@ pub fn build_all(config: &'_ Config, unit.platform == products[0].ck && unit.target.crate_types.contains(&products[0].src_ct) && unit.target.name == products[0].name) - .then_some((r, Some(arts))) + .then_some((r, Some(arts))) }) .or_else(|| { assets.tree diff --git a/support/device/Cargo.toml b/support/device/Cargo.toml index 4182813c..8b2d2d25 100644 --- a/support/device/Cargo.toml +++ b/support/device/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "playdate-device" -version = "0.2.12" +version = "0.2.13" readme = "README.md" description = "Cross-platform interface Playdate device, async & blocking." keywords = ["playdate", "usb", "serial"] diff --git a/support/device/src/mount/win.rs b/support/device/src/mount/win.rs index 03006674..aa226007 100644 --- a/support/device/src/mount/win.rs +++ b/support/device/src/mount/win.rs @@ -56,8 +56,8 @@ pub mod unmount { fn unmount_blocking(&self) -> Result<(), Error> { #[cfg(feature = "eject")] let res = unmount_eject(&self).or_else(|err| { - winapi::unmount(self.letter).map_err(|err2| Error::chain(err2, [err])) - }); + winapi::unmount(self.letter).map_err(|err2| Error::chain(err2, [err])) + }); #[cfg(not(feature = "eject"))] let res = winapi::unmount(self.letter); @@ -92,12 +92,12 @@ pub mod unmount { #[cfg(feature = "eject")] let fut = lazy(|_| unmount_eject(&self)).or_else(|err| { - lazy(|_| { - winapi::unmount(self.letter).map_err(|err2| { - Error::chain(err2, [err]) - }) - }) - }); + lazy(|_| { + winapi::unmount(self.letter).map_err(|err2| { + Error::chain(err2, [err]) + }) + }) + }); #[cfg(not(feature = "eject"))] let fut = lazy(|_| winapi::unmount(self.letter)); diff --git a/support/device/src/usb/mod.rs b/support/device/src/usb/mod.rs index 630a6303..c2aaf424 100644 --- a/support/device/src/usb/mod.rs +++ b/support/device/src/usb/mod.rs @@ -294,10 +294,11 @@ impl Interface { // TODO: attach data to the pool let written = comp.data.actual_length(); let data = comp.data.reuse(); - let s = std::str::from_utf8(&data).map(Cow::Borrowed) - .unwrap_or_else(|_| { - Cow::Owned(hex::encode_upper(&data)) - }); + let s = + std::str::from_utf8(&data).map(Cow::Borrowed) + .unwrap_or_else(|_| { + Cow::Owned(hex::encode_upper(&data)) + }); trace!("sent, resp: ({written}) '{s}'"); comp.status.map(|_| written) })