From fcc6cd3cfe622d863fd4e4ebff409ecea72e28bd Mon Sep 17 00:00:00 2001 From: Transaction Science Date: Sun, 25 Oct 2026 22:04:23 -0400 Subject: [PATCH 1/2] clippy 1.99: fix what Rust 1.99.1's clippy newly reports, before the pin moves These are the only lints clippy 1.99.1 reports that clippy 1.98.0 does not. Every cargo root in the tree was compared on both toolchains (the evidence is in the next commit). 1.98.0's clippy also builds every target of the fixed code, and reports nothing it did not report before, so this commit stands under either pin. What changed, and why - clippy::assert_is_empty is new in 1.99. 36 sites, all in test code (#[cfg(test)] modules; no lib or bin build reports any): aac-core and access-core, 23 sites; openpay's op-crypto-extra, op-emv, op-iso20022, op-reconciliation, op-routing, op-screening, op-settlement and op-tax, 13 sites. `assert!(x.is_empty())` becomes `assert_eq!(x, [] as [T; 0])`, `assert_ne!` for the negation, or `""` for strings, so a failure prints the value instead of only "false". aac-core and access-core are `#![deny(warnings)]` and `#![deny(clippy::all)]`, so without this their clippy run fails on 1.99.1. Judgment call: at 18 of the 36 sites, clippy's own "MachineApplicable" suggestion does not compile. It names local types by crate-relative path (`finder::Found`, which is not in scope in a test module), or offers a bare `[]` whose element type cannot be inferred. So each site names its element type as its own module sees it (`[] as [Found; 0]`, `[] as [f64; 0]`). The four lines rustfmt would wrap are wrapped the way rustfmt wraps them. - clippy::approx_constant (deny-by-default) now knows EULER_GAMMA and GOLDEN_RATIO. Both are in std::f{32,64}::consts and stable since 1.94; the jouleclaw workspace MSRV is 1.97. - jouleclaw-omni, inference/architecture/mochi.rs: `1.618_034` becomes `std::f32::consts::GOLDEN_RATIO`. They are the same f32 (1.61803400516510009765625), so the latents do not change. This file is in standards-build.yml's macOS gate (`cargo clippy -p jouleclaw-omni --features metal -- -D warnings`), which fails on 1.99.1 without the fix. - jouleclaw-outlier, c_factor: `0.5772156649` becomes `std::f64::consts::EULER_GAMMA`. Judgment call: the literal was truncated, so c(n) moves by 3.1e-12. The normalisation in the isolation-forest paper uses the Euler-Mascheroni constant itself, so this is the intended value. No other crate and no committed vector reads these scores, and the crate's tests pass unchanged. - smart-byte-rs/Cargo.lock: async-trait 0.1.89 becomes 0.1.92, which adds syn 3.0.9 as its dependency. 0.1.89 put `#[must_use]` on every trait method it generates. clippy 1.99 now counts the returned `Pin>` as must_use already, so clippy::double_must_use fired at 9 #[async_trait] trait methods. The attribute there is the macro's, not ours, so the right fix is the macro: 0.1.92 no longer emits it, and every other lockfile in this tree already uses 0.1.92. A narrow `cargo update -p async-trait --precise 0.1.92` also moved data-encoding-macro-internal (which accepts syn >=1, <3) from syn 2 to syn 1. That was put back to syn 2.0.117, as on main, so the lock changes only what the bump needs. `cargo update --workspace --locked` and scripts/check-lockfiles.sh accept it. Left as they are - openpay op-dispute-evidence evidence.rs:92 (clippy::double_must_use) is reported on 1.98.0 too. Only the message's wording changed in 1.99. Co-Authored-By: Claude Opus 5.5 --- aac/aac-rs/crates/aac-core/src/analytics.rs | 2 +- aac/aac-rs/crates/aac-core/src/finder.rs | 9 ++++++--- aac/aac-rs/crates/aac-core/src/ja_inflect.rs | 2 +- .../crates/aac-core/src/keyboard/by_ear.rs | 4 ++-- .../crates/aac-core/src/keyboard/tests.rs | 2 +- aac/aac-rs/crates/aac-core/src/obf.rs | 12 +++++++++--- aac/aac-rs/crates/aac-core/src/prediction.rs | 4 ++-- aac/aac-rs/crates/aac-core/src/print/tests.rs | 4 ++-- aac/aac-rs/crates/aac-core/src/symbols/mod.rs | 4 ++-- aac/aac-rs/crates/aac-core/src/usage.rs | 2 +- aac/aac-rs/crates/aac-core/src/wordsplit.rs | 2 +- aac/aac-rs/crates/access-core/src/adaptation.rs | 7 +++++-- .../crates/access-core/src/press_timing.rs | 4 ++-- .../src/inference/architecture/mochi.rs | 2 +- .../crates/jouleclaw-outlier/src/lib.rs | 2 +- openpay/crates/op-crypto-extra/src/htlc.rs | 2 +- openpay/crates/op-crypto-extra/src/stable.rs | 2 +- openpay/crates/op-emv/src/stream.rs | 2 +- openpay/crates/op-iso20022/src/bah.rs | 2 +- openpay/crates/op-iso20022/src/statement.rs | 2 +- openpay/crates/op-reconciliation/src/matcher.rs | 6 +++--- openpay/crates/op-routing/src/lcr.rs | 2 +- openpay/crates/op-screening/src/screener.rs | 2 +- openpay/crates/op-settlement/src/batch.rs | 2 +- openpay/crates/op-settlement/src/store.rs | 2 +- openpay/crates/op-tax/src/nexus.rs | 2 +- smart-byte/smart-byte-rs/Cargo.lock | 17 ++++++++++++++--- 27 files changed, 64 insertions(+), 41 deletions(-) diff --git a/aac/aac-rs/crates/aac-core/src/analytics.rs b/aac/aac-rs/crates/aac-core/src/analytics.rs index 7cd4fcfd7..6619dfbed 100644 --- a/aac/aac-rs/crates/aac-core/src/analytics.rs +++ b/aac/aac-rs/crates/aac-core/src/analytics.rs @@ -277,6 +277,6 @@ mod tests { assert!(coverage.core_words_used >= 3); assert!(coverage.coverage_percent > 0.0); - assert!(!coverage.unused_words.is_empty()); + assert_ne!(coverage.unused_words, [] as [String; 0]); } } diff --git a/aac/aac-rs/crates/aac-core/src/finder.rs b/aac/aac-rs/crates/aac-core/src/finder.rs index aa704ee94..efbd25934 100644 --- a/aac/aac-rs/crates/aac-core/src/finder.rs +++ b/aac/aac-rs/crates/aac-core/src/finder.rs @@ -1333,7 +1333,10 @@ mod tests { assert_eq!(second.len(), 3); assert_eq!(second.presses.iter().map(|p| p.board).collect::>(), [w.home.id, w.needs.id, w.drinks.id]); // A word on no board is not found; one no press leads to has no way. - assert!(f.find("zorp", &[w.home.id], Reach::default()).is_empty()); + assert_eq!( + f.find("zorp", &[w.home.id], Reach::default()), + [] as [Found; 0] + ); let lonely = f.find("lonely", &[w.home.id], Reach::default()); assert_eq!(lonely.len(), 1); assert_eq!(lonely[0].way, None); @@ -1427,7 +1430,7 @@ mod tests { assert_eq!(got("wat"), [("I want water".into(), Match::Start)]); assert_eq!(got("ate"), [("I want water".into(), Match::Inside)]); // One letter is never found inside a word. - assert!(got("t").is_empty()); + assert_eq!(got("t"), [] as [(String, Match); 0]); } #[test] @@ -1459,7 +1462,7 @@ mod tests { } // A Hangul syllable is its jamo, so one still being typed is found. assert!(search_key("물").starts_with(&search_key("무"))); - assert!(!search_key("물").is_empty()); + assert_ne!(search_key("물"), ""); // Chinese is as written. assert_ne!(search_key("说"), search_key("說")); } diff --git a/aac/aac-rs/crates/aac-core/src/ja_inflect.rs b/aac/aac-rs/crates/aac-core/src/ja_inflect.rs index 022fd257c..cbd4fd233 100644 --- a/aac/aac-rs/crates/aac-core/src/ja_inflect.rs +++ b/aac/aac-rs/crates/aac-core/src/ja_inflect.rs @@ -546,6 +546,6 @@ mod tests { } // Never the word itself, and never a bare stem as a verb. assert!(!dictionary_forms("たべる", kinds).contains(&"たべる".to_string())); - assert!(dictionary_forms("いき", kinds).is_empty()); + assert_eq!(dictionary_forms("いき", kinds), [] as [String; 0]); } } diff --git a/aac/aac-rs/crates/aac-core/src/keyboard/by_ear.rs b/aac/aac-rs/crates/aac-core/src/keyboard/by_ear.rs index 98b3e6819..defbc2023 100644 --- a/aac/aac-rs/crates/aac-core/src/keyboard/by_ear.rs +++ b/aac/aac-rs/crates/aac-core/src/keyboard/by_ear.rs @@ -388,7 +388,7 @@ mod tests { // Vietnamese: a vowel takes its five tones; a consonant none. assert_eq!(then_for("vi", "a").len(), 5); assert!(then_for("vi", "an").is_empty() || then_for("vi", "an").len() == 5); - assert!(then_for("en", "a").is_empty()); + assert_eq!(then_for("en", "a"), [] as [Item; 0]); // Kana: its small and voiced forms, then the katakana of each; // Ethiopic: the other orders. let form = |f: &str| Item::Form(f.into()); @@ -397,7 +397,7 @@ mod tests { // has a name. assert_eq!(then_for("sv", "e"), vec![form("é")]); assert_eq!(then_for("sv", "E"), vec![form("é")]); - assert!(then_for("sv", "a").is_empty()); + assert_eq!(then_for("sv", "a"), [] as [Item; 0]); assert!(letter_groups("fr", 5).last().unwrap().contains(&letter("'"))); assert!(!letter_groups("de", 5).last().unwrap().contains(&letter("'"))); assert_eq!(then_for("am", "ቀ").len(), 6 + 5); diff --git a/aac/aac-rs/crates/aac-core/src/keyboard/tests.rs b/aac/aac-rs/crates/aac-core/src/keyboard/tests.rs index 27d63e7d2..18e4e3e18 100644 --- a/aac/aac-rs/crates/aac-core/src/keyboard/tests.rs +++ b/aac/aac-rs/crates/aac-core/src/keyboard/tests.rs @@ -33,7 +33,7 @@ fn places_of(page: &Page, action: &KeyAction) -> Vec<(u16, u16)> { fn every_row_covers_the_whole_grid() { for kb in all() { for page in &kb.pages { - assert!(!page.rows.is_empty()); + assert_ne!(page.rows, [] as [Vec; 0]); for (r, row) in page.rows.iter().enumerate() { let covered: u16 = row.iter().map(|k| k.span).sum(); assert_eq!( diff --git a/aac/aac-rs/crates/aac-core/src/obf.rs b/aac/aac-rs/crates/aac-core/src/obf.rs index f110a092e..5f8592e1a 100644 --- a/aac/aac-rs/crates/aac-core/src/obf.rs +++ b/aac/aac-rs/crates/aac-core/src/obf.rs @@ -2451,7 +2451,7 @@ mod tests { let v = to_obf_with(&sample_board(), &ObfExportOptions { sprites: sprites(), ..ObfExportOptions::default() }); assert_eq!(v["license"]["type"], "private"); let images = v["images"].as_array().unwrap(); - assert!(!images.is_empty()); + assert_ne!(images.as_slice(), [] as [Value; 0]); for img in images { let set = img["symbol"]["set"].as_str().unwrap(); let info = set_info(SymbolSet::ALL.into_iter().find(|s| s.as_str() == set).unwrap()); @@ -2487,7 +2487,10 @@ mod tests { assert!(bare["images"].as_array().unwrap().iter().all(|img| img.get("data").is_none() && img["width"].is_u64())); // Words only: no pictures. let none = to_obf_with(&sample_board(), &ObfExportOptions { symbol_set: None, ..ObfExportOptions::default() }); - assert!(none["images"].as_array().unwrap().is_empty()); + assert_eq!( + none["images"].as_array().unwrap().as_slice(), + [] as [Value; 0] + ); } #[test] @@ -2762,7 +2765,10 @@ mod tests { // Without the bytes, a recording is left out rather than named // where no other app can find it; the button speaks its words. let bare = to_obf(&board); - assert!(bare["sounds"].as_array().unwrap().is_empty()); + assert_eq!( + bare["sounds"].as_array().unwrap().as_slice(), + [] as [Value; 0] + ); assert!(button(&bare, "love").get("sound_id").is_none()); assert!(button(&bare, "Rex").get("image_id").is_none()); } diff --git a/aac/aac-rs/crates/aac-core/src/prediction.rs b/aac/aac-rs/crates/aac-core/src/prediction.rs index e2b484e59..7bf8fcd8a 100644 --- a/aac/aac-rs/crates/aac-core/src/prediction.rs +++ b/aac/aac-rs/crates/aac-core/src/prediction.rs @@ -1384,7 +1384,7 @@ mod tests { let ctx = CommunicationContext::now(); let preds = engine.predict("hello", &ctx, 10); assert!(preds.is_empty()); - assert!(engine.predict_letters("hel", 5).is_empty()); + assert_eq!(engine.predict_letters("hel", 5), [] as [LetterCandidate; 0]); } #[test] @@ -1485,7 +1485,7 @@ mod tests { .unwrap(); let mut engine = PredictionEngine::new(); engine.set_language("gu", None).unwrap(); - assert!(engine.language_status().notes.is_empty()); + assert_eq!(engine.language_status().notes, [] as [String; 0]); assert_eq!(engine.language_status_in(&index).notes, vec!["no source covers it yet".to_string()]); assert_eq!(PredictionLanguageStatus::from_index(&index, "gu").notes, engine.language_status_in(&index).notes); } diff --git a/aac/aac-rs/crates/aac-core/src/print/tests.rs b/aac/aac-rs/crates/aac-core/src/print/tests.rs index 3ec6d3c6d..b5a66449e 100644 --- a/aac/aac-rs/crates/aac-core/src/print/tests.rs +++ b/aac/aac-rs/crates/aac-core/src/print/tests.rs @@ -195,7 +195,7 @@ fn hidden_and_blank_cells_print_as_empty_places() { only_cat.cells.retain(|c| c.id == hidden); map.insert(id, only_cat); let plan = plan(&map, Some(id), Some(&[id]), PrintKind::Boards, PrintSettings::default(), Some(SymbolSet::Mulberry), None).unwrap(); - assert!(plan.symbol_sets.is_empty()); + assert_eq!(plan.symbol_sets, [] as [SymbolSet; 0]); assert!(!plan.pages.contains(&PageKind::Credits)); } @@ -206,7 +206,7 @@ fn one_board_prints_on_one_page_with_its_credits_at_the_foot() { assert_eq!(plan.pages.len(), 1); assert!(matches!(&plan.pages[0], PageKind::Board { board, part: 1, parts: 1, .. } if *board == home)); assert!(plan.credits_at_foot); - assert!(!plan.symbol_sets.is_empty()); + assert_ne!(plan.symbol_sets, [] as [SymbolSet; 0]); // Feelings is not printed: its link has no page. assert_eq!(plan.page_of(feelings), None); assert_eq!(plan.go_to(&CellAction::Navigate(feelings)), None); diff --git a/aac/aac-rs/crates/aac-core/src/symbols/mod.rs b/aac/aac-rs/crates/aac-core/src/symbols/mod.rs index 734b90dd1..cfe187c50 100644 --- a/aac/aac-rs/crates/aac-core/src/symbols/mod.rs +++ b/aac/aac-rs/crates/aac-core/src/symbols/mod.rs @@ -591,7 +591,7 @@ mod tests { fn the_picker_finds_symbols_in_english_and_in_the_persons_language() { let dog = search_concepts("dog", "en-US", 10); assert_eq!(dog.first(), Some(&"dog"), "{dog:?}"); - assert!(search_concepts(" ", "en", 10).is_empty()); + assert_eq!(search_concepts(" ", "en", 10), [] as [&str; 0]); assert!(search_concepts("d", "en", 5).len() <= 5); assert!(search_concepts("e", "en", 1000).iter().all(|k| !k.contains(':')), "no actions or arrows"); // Spanish: "perro" finds the dog. @@ -687,7 +687,7 @@ mod tests { #[test] #[cfg(not(feature = "nc-symbols"))] fn a_build_without_the_optional_sets_knows_none() { - assert!(SymbolSet::NONCOMMERCIAL.is_empty()); + assert_eq!(SymbolSet::NONCOMMERCIAL.as_slice(), []); assert_eq!(SymbolSet::EVERY, SymbolSet::ALL); assert!(concepts().all(|(_, sets)| sets.keys().all(|s| SymbolSet::ALL.contains(s)))); for set in SymbolSet::ALL { diff --git a/aac/aac-rs/crates/aac-core/src/usage.rs b/aac/aac-rs/crates/aac-core/src/usage.rs index dac427fe9..bd20174c3 100644 --- a/aac/aac-rs/crates/aac-core/src/usage.rs +++ b/aac/aac-rs/crates/aac-core/src/usage.rs @@ -326,7 +326,7 @@ mod tests { }) .collect(); let started = std::time::Instant::now(); - assert!(new_in(&long, long.clone()).is_empty()); + assert_eq!(new_in(&long, long.clone()), [] as [Selection; 0]); assert!(started.elapsed() < std::time::Duration::from_secs(2), "{:?}", started.elapsed()); let mut mine: Modelled = [("a".to_string(), 3), ("b".to_string(), 1)].into(); merge_modelled(&mut mine, &[("a".to_string(), 2), ("c".to_string(), 4)].into()); diff --git a/aac/aac-rs/crates/aac-core/src/wordsplit.rs b/aac/aac-rs/crates/aac-core/src/wordsplit.rs index 5d58cbc37..3ed105479 100644 --- a/aac/aac-rs/crates/aac-core/src/wordsplit.rs +++ b/aac/aac-rs/crates/aac-core/src/wordsplit.rs @@ -285,7 +285,7 @@ mod tests { assert_eq!(s.words, ["I", "want", "wat"]); assert!(s.open); assert!(!split_words("I want ", false).open); - assert!(split_words("", false).words.is_empty()); + assert_eq!(split_words("", false).words, [] as [String; 0]); } #[test] diff --git a/aac/aac-rs/crates/access-core/src/adaptation.rs b/aac/aac-rs/crates/access-core/src/adaptation.rs index 55335a878..8e0a2bace 100644 --- a/aac/aac-rs/crates/access-core/src/adaptation.rs +++ b/aac/aac-rs/crates/access-core/src/adaptation.rs @@ -271,7 +271,10 @@ mod tests { fn uniform_is_uniform() { let p = UniformPrior.probabilities(&opts(), &PriorContext::default()); assert_eq!(p, vec![1.0 / 3.0; 3]); - assert!(UniformPrior.probabilities(&[], &PriorContext::default()).is_empty()); + assert_eq!( + UniformPrior.probabilities(&[], &PriorContext::default()), + [] as [f64; 0] + ); } #[test] @@ -288,7 +291,7 @@ mod tests { fn normalize_handles_garbage() { assert_eq!(normalize(&[f64::NAN, -1.0, 0.0]), vec![1.0 / 3.0; 3]); assert_eq!(normalize(&[2.0, f64::INFINITY, 2.0]), vec![0.5, 0.0, 0.5]); - assert!(normalize(&[]).is_empty()); + assert_eq!(normalize(&[]), [] as [f64; 0]); } #[test] diff --git a/aac/aac-rs/crates/access-core/src/press_timing.rs b/aac/aac-rs/crates/access-core/src/press_timing.rs index 64478b15d..4ed3d2603 100644 --- a/aac/aac-rs/crates/access-core/src/press_timing.rs +++ b/aac/aac-rs/crates/access-core/src/press_timing.rs @@ -564,7 +564,7 @@ mod tests { m.complete_selection(); m.stage(&[900.0], true); m.abandon(); - assert!(m.staged().is_empty()); + assert_eq!(m.staged(), [] as [f64; 0]); for k in 0..3 { select(&mut m, 700.0 + f64::from(k)); } @@ -615,7 +615,7 @@ mod tests { fn nan_offsets_are_ignored() { let mut m = PressTimingModel::for_scan_interval(1000); m.stage(&[f64::NAN, f64::INFINITY], true); - assert!(m.staged().is_empty()); + assert_eq!(m.staged(), [] as [f64; 0]); m.learn_kept(&[f64::NAN]); assert_eq!(m.confirmed(), 0); } diff --git a/jouleclaw/jouleclaw-rs/crates/jouleclaw-omni/src/inference/architecture/mochi.rs b/jouleclaw/jouleclaw-rs/crates/jouleclaw-omni/src/inference/architecture/mochi.rs index 782eaf9f1..7a4842e09 100644 --- a/jouleclaw/jouleclaw-rs/crates/jouleclaw-omni/src/inference/architecture/mochi.rs +++ b/jouleclaw/jouleclaw-rs/crates/jouleclaw-omni/src/inference/architecture/mochi.rs @@ -259,7 +259,7 @@ impl MochiPipeline { let mut latent_data = vec![0.0f32; latent_size]; // Simple pseudo-random initialization using golden ratio hash for i in 0..latent_size { - let hash = ((i as f32 * 1.618_034) % 1.0) * 2.0 - 1.0; + let hash = ((i as f32 * std::f32::consts::GOLDEN_RATIO) % 1.0) * 2.0 - 1.0; latent_data[i] = hash * 0.1; } let latent_f16: Vec = latent_data.iter().map(|&v| half::f16::from_f32(v)).collect(); diff --git a/jouleclaw/jouleclaw-rs/crates/jouleclaw-outlier/src/lib.rs b/jouleclaw/jouleclaw-rs/crates/jouleclaw-outlier/src/lib.rs index 440adbd92..79fa6cb9d 100644 --- a/jouleclaw/jouleclaw-rs/crates/jouleclaw-outlier/src/lib.rs +++ b/jouleclaw/jouleclaw-rs/crates/jouleclaw-outlier/src/lib.rs @@ -310,7 +310,7 @@ fn c_factor(n: usize) -> f64 { return 0.0; } let n_f = n as f64; - 2.0 * ((n_f - 1.0).ln() + 0.5772156649) - (2.0 * (n_f - 1.0) / n_f) + 2.0 * ((n_f - 1.0).ln() + std::f64::consts::EULER_GAMMA) - (2.0 * (n_f - 1.0) / n_f) } impl Scored for IsolationForest { diff --git a/openpay/crates/op-crypto-extra/src/htlc.rs b/openpay/crates/op-crypto-extra/src/htlc.rs index df90881e6..bf15ec692 100644 --- a/openpay/crates/op-crypto-extra/src/htlc.rs +++ b/openpay/crates/op-crypto-extra/src/htlc.rs @@ -218,7 +218,7 @@ mod tests { c.state = s; // Round-trip via serde to confirm enum variants serialize. let s_json = serde_json::to_string(&c.state).unwrap(); - assert!(!s_json.is_empty()); + assert_ne!(s_json, ""); } } } diff --git a/openpay/crates/op-crypto-extra/src/stable.rs b/openpay/crates/op-crypto-extra/src/stable.rs index 3c8f1d021..d7d9c237a 100644 --- a/openpay/crates/op-crypto-extra/src/stable.rs +++ b/openpay/crates/op-crypto-extra/src/stable.rs @@ -289,7 +289,7 @@ mod tests { Stablecoin::Eurc, Stablecoin::Fdusd, ] { - assert!(!s.symbol().is_empty()); + assert_ne!(s.symbol(), ""); } } diff --git a/openpay/crates/op-emv/src/stream.rs b/openpay/crates/op-emv/src/stream.rs index f4db661d3..26a03265d 100644 --- a/openpay/crates/op-emv/src/stream.rs +++ b/openpay/crates/op-emv/src/stream.rs @@ -333,7 +333,7 @@ mod tests { assert_eq!(children[0].tag.0, 0x84); assert_eq!(children[0].value, &[0xAA, 0xBB]); assert_eq!(children[1].tag.0, 0xA5); - assert!(children[1].value.is_empty()); + assert_eq!(children[1].value, []); } #[test] diff --git a/openpay/crates/op-iso20022/src/bah.rs b/openpay/crates/op-iso20022/src/bah.rs index 9f93eb7bc..cce3f499f 100644 --- a/openpay/crates/op-iso20022/src/bah.rs +++ b/openpay/crates/op-iso20022/src/bah.rs @@ -267,7 +267,7 @@ mod tests { PartyIdentification::AbaRoutingNumber("026009593".into()), "pacs.008.001.08", ); - assert!(!bah.business_message_id.is_empty()); + assert_ne!(bah.business_message_id, ""); assert_eq!(bah.message_definition_id, "pacs.008.001.08"); assert!(bah.validate().is_ok()); } diff --git a/openpay/crates/op-iso20022/src/statement.rs b/openpay/crates/op-iso20022/src/statement.rs index b6da7145c..a0f5bf618 100644 --- a/openpay/crates/op-iso20022/src/statement.rs +++ b/openpay/crates/op-iso20022/src/statement.rs @@ -196,7 +196,7 @@ mod tests { fn non_camt053_message_yields_no_entries() { // Any other kind flattens to nothing rather than erroring. let admi = Message::Admi002(Box::default()); - assert!(admi.camt053_entries().is_empty()); + assert_eq!(admi.camt053_entries(), [] as [StatementEntry; 0]); } #[test] diff --git a/openpay/crates/op-reconciliation/src/matcher.rs b/openpay/crates/op-reconciliation/src/matcher.rs index ab566da59..37eb33b28 100644 --- a/openpay/crates/op-reconciliation/src/matcher.rs +++ b/openpay/crates/op-reconciliation/src/matcher.rs @@ -283,7 +283,7 @@ mod tests { TOL, ); assert_eq!(o.matched, 1); - assert!(o.discrepancies.is_empty()); + assert_eq!(o.discrepancies, [] as [Discrepancy; 0]); } #[test] @@ -308,7 +308,7 @@ mod tests { fn out_of_window_ledger_tx_not_flagged() { // tx effective beyond the window end → not our concern. let o = match_lines(&[], &[posted("ORD-X", 10, 2_000_000)], W, TOL); - assert!(o.discrepancies.is_empty()); + assert_eq!(o.discrepancies, [] as [Discrepancy; 0]); } #[test] @@ -355,7 +355,7 @@ mod tests { TOL, ); assert_eq!(o.fuzzy_matched, 1); - assert!(o.discrepancies.is_empty()); + assert_eq!(o.discrepancies, [] as [Discrepancy; 0]); } #[test] diff --git a/openpay/crates/op-routing/src/lcr.rs b/openpay/crates/op-routing/src/lcr.rs index 95d89399d..aefa33075 100644 --- a/openpay/crates/op-routing/src/lcr.rs +++ b/openpay/crates/op-routing/src/lcr.rs @@ -264,6 +264,6 @@ mod tests { #[test] fn empty_pool_returns_empty() { let router = LeastCostRouter::new(); - assert!(router.select(&intent(10_000)).is_empty()); + assert_eq!(router.select(&intent(10_000)), [] as [Route; 0]); } } diff --git a/openpay/crates/op-screening/src/screener.rs b/openpay/crates/op-screening/src/screener.rs index a73cc79f8..2cbd6666d 100644 --- a/openpay/crates/op-screening/src/screener.rs +++ b/openpay/crates/op-screening/src/screener.rs @@ -249,7 +249,7 @@ mod tests { .await .expect("ok"); assert_eq!(r.decision, ScreenDecision::Clear); - assert!(r.hits.is_empty()); + assert_eq!(r.hits, [] as [MatchScore; 0]); } #[tokio::test] diff --git a/openpay/crates/op-settlement/src/batch.rs b/openpay/crates/op-settlement/src/batch.rs index f3906aa4e..5dca6a93e 100644 --- a/openpay/crates/op-settlement/src/batch.rs +++ b/openpay/crates/op-settlement/src/batch.rs @@ -328,7 +328,7 @@ mod tests { fn opens_in_open_status() { let b = Batch::open(Currency::USD, PayoutRail::AchNacha, 1_000); assert_eq!(b.status.code(), "open"); - assert!(b.entries.is_empty()); + assert_eq!(b.entries, [] as [BatchEntry; 0]); } #[test] diff --git a/openpay/crates/op-settlement/src/store.rs b/openpay/crates/op-settlement/src/store.rs index c58f83f30..a0ab7c975 100644 --- a/openpay/crates/op-settlement/src/store.rs +++ b/openpay/crates/op-settlement/src/store.rs @@ -222,6 +222,6 @@ mod tests { Ok(()) }) .unwrap(); - assert!(store.list_open().unwrap().is_empty()); + assert_eq!(store.list_open().unwrap(), [] as [Batch; 0]); } } diff --git a/openpay/crates/op-tax/src/nexus.rs b/openpay/crates/op-tax/src/nexus.rs index 59f3ee8d3..18ad909bd 100644 --- a/openpay/crates/op-tax/src/nexus.rs +++ b/openpay/crates/op-tax/src/nexus.rs @@ -323,6 +323,6 @@ mod tests { let mut m = NexusMonitor::new(); // No thresholds configured. let events = m.record(&tx("WA", 1_000_000)); - assert!(events.is_empty()); + assert_eq!(events, [] as [NexusEvent; 0]); } } diff --git a/smart-byte/smart-byte-rs/Cargo.lock b/smart-byte/smart-byte-rs/Cargo.lock index f85aa68cb..d7eb0d82b 100644 --- a/smart-byte/smart-byte-rs/Cargo.lock +++ b/smart-byte/smart-byte-rs/Cargo.lock @@ -256,13 +256,13 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.89" +version = "0.1.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +checksum = "82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 3.0.9", ] [[package]] @@ -6469,6 +6469,17 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn" +version = "3.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d78c8dee4c7bf0e14673097256fed6142ce9d3b85a408189d07482442145823b" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + [[package]] name = "syn-mid" version = "0.5.4" -- 2.54.0 (Apple Git-157) From cf0665493e7bb0783f4b646682feea2986ea3030 Mon Sep 17 00:00:00 2001 From: Transaction Science Date: Sun, 25 Oct 2026 22:04:23 -0400 Subject: [PATCH 2/2] toolchain: Rust 1.98.0 -> 1.99.1 (change-controlled pin) Approved by the owner on 2026-10-22. Procedure: change `channel`, run `rustup show`, then run the pipeline. What changed - rust-toolchain.toml and eoc/eoc-rs/rust-toolchain.toml: channel "1.98.0" becomes "1.99.1". These are the only two pins in the tree, and the root one governs every other cargo root. - 34 workflows under .github/workflows (the forge's CI): every `Install Rust 1.98.0`, `rustup toolchain install / default / component add / target add --toolchain 1.98.0` and `--default-toolchain 1.98.0` now names 1.99.1 (224 lines). - Left as they are, because they record what was measured on 1.98.0: standards-build.yml's "Verified on a native arm64 Linux container (rustc 1.98.0)", wai-conformance.yml's note on Rust 1.98's LLD 22, and the "rustc 1.98.0 (example)" strings in receipts, vectors and docs. The one-codegen-unit workaround that note explains also stays. 1.99.1 ships LLD 23.1.1, which the note says links those inputs, but removing the workaround should wait for a run at the CI path on x86_64. Why - 1.98.0 has a P-critical miscompile, rust-lang/rust#161441 (I-miscompile, regression-from-stable-to-stable). rustc emits a vacant (null) method slot in a trait-object vtable, so a safe dynamic call jumps to address zero (undefined behaviour). RELEASES.md records the fix in 1.98.1 ("rustc: fix miscompilation in generating vtables"). - 1.99.1 is the current stable (channel manifest dated 2026-10-15; rustc 58cf8f9c3 2026-10-13). It also fixes 1.99.0's own regressions: wcslen on UEFI and embedded targets, x86_64 FFI `bool` returns, and the rust-lld rpath on macOS. Evidence All of it ran on the build host (dcharlot@100.100.141.123, aarch64-apple-darwin) through ~/kani-logs/remote/rb. Nothing was built on the dev Mac. - `rustup show`: the active toolchain is 1.99.1-aarch64-apple-darwin, "overridden by .../rust-toolchain.toml" (and by eoc/eoc-rs's own file there). rustc 1.99.1 (58cf8f9c3 2026-10-13), LLVM 23.1.1, clippy 0.1.99, rustfmt 1.10.0. The baseline is rustc 1.98.0 (88d9e12ae 2026-08-18). - Scope: every cargo root the pin governs, which is 46 of the 49 tracked lockfiles. The other three: two are vendored crates that resolve inside their parents, and wai/wai-rs/fuzz builds on its own pinned nightly. - Trees. The final tree is main at 96117c570 plus these two commits. Main moved four times while this ran, and each root's evidence comes from the newest tree it was run on: - 13 roots on the final tree: every root main changed after 1a465f23d, and every root that consumes such a crate by path. - 12 roots on 1a465f23d plus these two commits. - 7 roots on b16816671 plus these two commits. - 14 roots on aa61ab3b9 plus the pin change. For each root in the last three groups, checked with git diff and the lockfiles' path packages: none of its files, and no crate it reaches by path, differs on the final tree. - Each root got: (a) `cargo fmt --all -- --check` on the pin and on 1.98.0. The output is byte-identical in all 46. CI gates no root on rustfmt, and none is rustfmt-clean on main. (b) `cargo clippy --locked --keep-going --workspace --all-targets` on both toolchains, with the diagnostics compared line by line. After the previous commit, no root has a diagnostic that only 1.99.1 reports. openpay's one differing line is the same lint at the same site, reworded. (c) `cargo test --workspace --locked`. (d) the root's other CI steps that can run on this host: feature-gated tests, conformance suites, release-profile tests, the aac page-set checks, and every clippy -D warnings gate. The gates are standards-build's macOS meter and omni lints (jouleclaw-energy x2, jouleclaw-omni metal, jouleclaw-loader-gguf, jcp, proof, eoc, sandbox), wai-pack, wai-quantum-cli (default, no-default and metal), wai-quantum-service, wai-quantum-qpu and wai-quantum-desktop. - Totals: `cargo test --workspace` ran in 43 roots: 12,532 passed, 1 failed, 101 ignored. The other 3 roots are wasm32-only, and their `cargo build --release --target wasm32-unknown-unknown` passed. Every other CI step passed (62 of 62). - On the final tree: scripts/check-lockfiles.sh (cargo 1.99.1) found all 47 lockfiles current, and scripts/check-advisories.py passes. - tokio is 1.54.1 in every lockfile cargo reads. That is patched for both RUSTSEC-2026-0386 (>= 1.53.3) and RUSTSEC-2026-0384 (>= 1.54.1). The 1.53.1 in vendor/wtransport/Cargo.lock is the upstream file kept with the vendored source; cargo resolves wtransport inside its parents, and both gates skip that file. - What is not green, each one reproduced on 1.98.0: - wai-ops-gpu: under the debug profile, `corpus` trips the debug_assert at exec.rs:187 on both toolchains. CI runs it in release only, and that passes (6/6). - wai-ops: clippy::derived_hash_with_manual_eq (deny-by-default) on both toolchains. No CI job runs clippy there. - wai-vector/wasm: `--all-targets` cannot build the lib-test target (its own `panic_impl`) on either toolchain. `clippy --lib` for wasm32 reports 0 diagnostics on both. - eoc-cascade's hit_calibration_process_energy test reads real energy counters, and it fails some of the time on the loaded shared host. In interleaved runs each toolchain passed 18 of 20. The full eoc-rs suite passed on the final tree (741 passed). - Environment, not code: - wai-quantum-desktop embeds the Studio's build, so wai/quantum-studio was built first (`npm ci`, `node build.mjs`), as CI does. - Not covered here: the x86_64 and arm64 Linux and Windows legs; the GPU, NPU, FPGA, emulator and hardware-meter legs; wasm32 tests under Node, wasmtime and wasip2; and the fuzz job. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/joule-code-conformance.yml | 24 +++---- .github/workflows/joule-moq-room.yml | 8 +-- .../jouleclaw-public-surface-documented.yml | 8 +-- .github/workflows/repo-checks.yml | 8 +-- .github/workflows/wai-byte-equality.yml | 14 ++-- .github/workflows/wai-conformance.yml | 66 +++++++++---------- .github/workflows/wai-energy-receipts.yml | 8 +-- .github/workflows/wai-formal-verification.yml | 2 +- .github/workflows/wai-http.yml | 24 +++---- .github/workflows/wai-jpegai-e2e.yml | 8 +-- .github/workflows/wai-neural-e2e.yml | 8 +-- .github/workflows/wai-neural-gates.yml | 8 +-- .github/workflows/wai-ops-differential.yml | 8 +-- .github/workflows/wai-ops-gpu.yml | 10 +-- .github/workflows/wai-ops.yml | 24 +++---- .github/workflows/wai-pack.yml | 26 ++++---- .github/workflows/wai-quantum-cli-release.yml | 8 +-- .github/workflows/wai-quantum-cli.yml | 10 +-- .github/workflows/wai-quantum-cuda.yml | 8 +-- .github/workflows/wai-quantum-fpga.yml | 8 +-- .github/workflows/wai-quantum-hip.yml | 8 +-- .github/workflows/wai-quantum-metal.yml | 8 +-- .github/workflows/wai-quantum-npu-cores.yml | 8 +-- .github/workflows/wai-quantum-npu.yml | 8 +-- .github/workflows/wai-quantum-opencl.yml | 8 +-- .github/workflows/wai-quantum-qpu.yml | 8 +-- .github/workflows/wai-quantum-service.yml | 8 +-- .github/workflows/wai-quantum-studio.yml | 8 +-- .../workflows/wai-quantum-tensor-engine.yml | 8 +-- .github/workflows/wai-quantum-webgpu.yml | 18 ++--- .github/workflows/wai-sota-vectors.yml | 8 +-- .github/workflows/wai-vector.yml | 40 +++++------ .github/workflows/wai-web-reach.yml | 10 +-- .github/workflows/wai-web-wasm.yml | 8 +-- eoc/eoc-rs/rust-toolchain.toml | 2 +- rust-toolchain.toml | 2 +- 36 files changed, 224 insertions(+), 224 deletions(-) diff --git a/.github/workflows/joule-code-conformance.yml b/.github/workflows/joule-code-conformance.yml index 5e53fe191..38d383401 100644 --- a/.github/workflows/joule-code-conformance.yml +++ b/.github/workflows/joule-code-conformance.yml @@ -81,13 +81,13 @@ jobs: # Bootstrap rustup: the docker runner image ships no Rust, and # dtolnay/rust-toolchain cannot help — it calls `rustup`, which is absent. - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Cache cargo @@ -211,14 +211,14 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: joule-moq-relay, every target @@ -250,14 +250,14 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: joule-moq-ingest, every target diff --git a/.github/workflows/joule-moq-room.yml b/.github/workflows/joule-moq-room.yml index 4690484ec..c413d16f6 100644 --- a/.github/workflows/joule-moq-room.yml +++ b/.github/workflows/joule-moq-room.yml @@ -67,14 +67,14 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: joule-moq-room, every target diff --git a/.github/workflows/jouleclaw-public-surface-documented.yml b/.github/workflows/jouleclaw-public-surface-documented.yml index d419ec24a..b94d6b6dd 100644 --- a/.github/workflows/jouleclaw-public-surface-documented.yml +++ b/.github/workflows/jouleclaw-public-surface-documented.yml @@ -59,13 +59,13 @@ jobs: # Bootstrap rustup: the docker runner image ships no Rust, and # dtolnay/rust-toolchain cannot help — it calls `rustup`, which is absent. - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Cache cargo registry + target diff --git a/.github/workflows/repo-checks.yml b/.github/workflows/repo-checks.yml index c1a71cd09..bed5b018a 100644 --- a/.github/workflows/repo-checks.yml +++ b/.github/workflows/repo-checks.yml @@ -36,14 +36,14 @@ jobs: python-version: '3.11' # check-lockfiles.sh runs `cargo` against every lockfile. - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # ── Every Cargo.lock is current ────────────────────────────────────────── diff --git a/.github/workflows/wai-byte-equality.yml b/.github/workflows/wai-byte-equality.yml index 4b42ac20a..9e8ec6a20 100644 --- a/.github/workflows/wai-byte-equality.yml +++ b/.github/workflows/wai-byte-equality.yml @@ -175,22 +175,22 @@ jobs: # unix: bootstrap rustup (docker image ships no Rust; macOS host has it but # launchd's PATH omits ~/.cargo/bin). Windows is a host executor with rustup # already present, and must use pwsh — its `bash` is the WSL stub. - - name: Install Rust 1.98.0 (unix) + - name: Install Rust 1.99.1 (unix) if: matrix.os != 'windows' shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - - name: Install Rust 1.98.0 (Windows) + - name: Install Rust 1.99.1 (Windows) if: matrix.os == 'windows' shell: pwsh run: | - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 - name: Decode fixtures, assert golden bytes working-directory: wai/byte-exact-conformance diff --git a/.github/workflows/wai-conformance.yml b/.github/workflows/wai-conformance.yml index aa18b7300..fa413465a 100644 --- a/.github/workflows/wai-conformance.yml +++ b/.github/workflows/wai-conformance.yml @@ -248,26 +248,26 @@ jobs: # is bootstrapped; the macOS `host` runner has it but launchd's PATH omits # ~/.cargo/bin. dtolnay/rust-toolchain is unusable — it calls a `rustup` # the docker image lacks. - - name: Install Rust 1.98.0 (unix) + - name: Install Rust 1.99.1 (unix) if: matrix.os != 'windows' shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 - rustup component add --toolchain 1.98.0 clippy + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 + rustup component add --toolchain 1.99.1 clippy echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # Windows: a host executor with rustup already installed. Only ensure the # pinned toolchain is present + default. pwsh, never bash (that is WSL here). - - name: Install Rust 1.98.0 (Windows) + - name: Install Rust 1.99.1 (Windows) if: matrix.os == 'windows' shell: pwsh run: | - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 - name: Build the cargo classes (pure Rust, no C codec chain) working-directory: wai/wai-rs @@ -441,7 +441,7 @@ jobs: done # The decode bench prints its machine line from bench_env; no other step builds it. cargo build --no-default-features --features neural_int,video_int,audio_int,world_int,splat_int --bin wai_decode_bench - rustup target add --toolchain 1.98.0 wasm32-unknown-unknown + rustup target add --toolchain 1.99.1 wasm32-unknown-unknown cargo check --lib --target wasm32-unknown-unknown --no-default-features --features video_int,audio_int,splat_int,staged,http # The staged-measurement core is wasm32-clean: a browser computes the same figures. # Built, not only checked, so codegen and linking of the library run for wasm32. @@ -548,7 +548,7 @@ jobs: working-directory: wai/wai-rs run: | set -euo pipefail - rustup target add --toolchain 1.98.0 wasm32-unknown-unknown + rustup target add --toolchain 1.99.1 wasm32-unknown-unknown cargo check --lib --target wasm32-unknown-unknown --no-default-features --features key_discovery,http # The corpus-verify loop is genuinely shell-specific (a helper that groups @@ -688,15 +688,15 @@ jobs: steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 with the wasm32-wasip2 target + - name: Install Rust 1.99.1 with the wasm32-wasip2 target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 - rustup target add --toolchain 1.98.0 wasm32-wasip2 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 + rustup target add --toolchain 1.99.1 wasm32-wasip2 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # The release binary, pinned by version and SHA-256, rather than a build from source. @@ -863,14 +863,14 @@ jobs: steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - uses: actions/setup-python@v5 @@ -1718,22 +1718,22 @@ jobs: steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 (unix) + - name: Install Rust 1.99.1 (unix) if: matrix.os != 'windows' shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - - name: Install Rust 1.98.0 (Windows) + - name: Install Rust 1.99.1 (Windows) if: matrix.os == 'windows' shell: pwsh run: | - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 - name: Integer rANS + int_synth + JPEG-AI mANS goldens (one machine → every machine) working-directory: wai/byte-exact-conformance @@ -1755,12 +1755,12 @@ jobs: steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # Every one of these test files is `#![cfg(feature = "codecs")]`: built without @@ -1836,14 +1836,14 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # `rust_native_crypto` rather than the SDK's default openssl backend, so this diff --git a/.github/workflows/wai-energy-receipts.yml b/.github/workflows/wai-energy-receipts.yml index 36130e7ae..4beba7ad7 100644 --- a/.github/workflows/wai-energy-receipts.yml +++ b/.github/workflows/wai-energy-receipts.yml @@ -145,14 +145,14 @@ jobs: # The docker runners (linux / linux-arm64) ship no Rust, so rustup is # bootstrapped; the macOS host runner has it but launchd's PATH omits # ~/.cargo/bin. - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # One feature set that compiles the wai-rs receipts that carry an diff --git a/.github/workflows/wai-formal-verification.yml b/.github/workflows/wai-formal-verification.yml index 957e23457..27d53fc07 100644 --- a/.github/workflows/wai-formal-verification.yml +++ b/.github/workflows/wai-formal-verification.yml @@ -173,7 +173,7 @@ jobs: export PATH="$HOME/.cargo/bin:$PATH" if ! command -v rustup >/dev/null; then curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \ - | sh -s -- -y --profile minimal --default-toolchain 1.98.0 + | sh -s -- -y --profile minimal --default-toolchain 1.99.1 fi echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" diff --git a/.github/workflows/wai-http.yml b/.github/workflows/wai-http.yml index fdaff68d9..ca3e472e1 100644 --- a/.github/workflows/wai-http.yml +++ b/.github/workflows/wai-http.yml @@ -156,15 +156,15 @@ jobs: steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 if: startsWith(matrix.shard, 'patches') shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - uses: actions/setup-python@v5 @@ -212,14 +212,14 @@ jobs: steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - uses: actions/setup-python@v5 @@ -250,14 +250,14 @@ jobs: steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - uses: actions/setup-python@v5 diff --git a/.github/workflows/wai-jpegai-e2e.yml b/.github/workflows/wai-jpegai-e2e.yml index e5aa29a23..0cf4c679f 100644 --- a/.github/workflows/wai-jpegai-e2e.yml +++ b/.github/workflows/wai-jpegai-e2e.yml @@ -172,14 +172,14 @@ jobs: steps: - uses: actions/checkout@v5 # Bootstrap rustup: the docker runner image ships no Rust. - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Fetch the JPEG-AI inputs and check each against the pinned manifest shell: bash diff --git a/.github/workflows/wai-neural-e2e.yml b/.github/workflows/wai-neural-e2e.yml index 90df5ed2a..9da3c73ef 100644 --- a/.github/workflows/wai-neural-e2e.yml +++ b/.github/workflows/wai-neural-e2e.yml @@ -102,13 +102,13 @@ jobs: working-directory: wai run: python tools/wai_validate_synthetic.py --size 256 # Bootstrap rustup: the docker runner image ships no Rust. - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Each Rust decoder reproduces its reference end-to-end working-directory: wai/wai-rs diff --git a/.github/workflows/wai-neural-gates.yml b/.github/workflows/wai-neural-gates.yml index 2a2e9e343..9196d100d 100644 --- a/.github/workflows/wai-neural-gates.yml +++ b/.github/workflows/wai-neural-gates.yml @@ -130,13 +130,13 @@ jobs: steps: - uses: actions/checkout@v5 # Bootstrap rustup: the docker runner image ships no Rust. - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Prior-hash refusal, the strict replicate gate, and the int_mlicpp dispatch working-directory: wai/wai-rs diff --git a/.github/workflows/wai-ops-differential.yml b/.github/workflows/wai-ops-differential.yml index be49d420b..b1ee9755f 100644 --- a/.github/workflows/wai-ops-differential.yml +++ b/.github/workflows/wai-ops-differential.yml @@ -49,14 +49,14 @@ jobs: - uses: actions/checkout@v4 # The docker image ships no Rust. - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Through the operator set against the direct decode, random sets and payloads diff --git a/.github/workflows/wai-ops-gpu.yml b/.github/workflows/wai-ops-gpu.yml index dfea03d12..a096817e0 100644 --- a/.github/workflows/wai-ops-gpu.yml +++ b/.github/workflows/wai-ops-gpu.yml @@ -91,15 +91,15 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 with the wasm32-unknown-unknown target + - name: Install Rust 1.99.1 with the wasm32-unknown-unknown target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 - rustup target add --toolchain 1.98.0 wasm32-unknown-unknown + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 + rustup target add --toolchain 1.99.1 wasm32-unknown-unknown echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # This container offers no adapter. The device tests must say so and pass; under # WAI_OPS_GPU_REQUIRE=1 the same tests must fail. Were an adapter ever offered diff --git a/.github/workflows/wai-ops.yml b/.github/workflows/wai-ops.yml index 233414008..8b700c528 100644 --- a/.github/workflows/wai-ops.yml +++ b/.github/workflows/wai-ops.yml @@ -116,14 +116,14 @@ jobs: # The docker images ship no Rust; the macOS host has it, but launchd's PATH omits # ~/.cargo/bin. - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Unit, goldens, step-8, verdict and doc tests, debug @@ -196,14 +196,14 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Install Rust 1.98.0 with the wasm32-wasip2 target + - name: Install Rust 1.99.1 with the wasm32-wasip2 target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 rustup target add wasm32-wasip2 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" @@ -250,14 +250,14 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Install Rust 1.98.0 with the wasm32 target + - name: Install Rust 1.99.1 with the wasm32 target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 rustup target add wasm32-unknown-unknown echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" diff --git a/.github/workflows/wai-pack.yml b/.github/workflows/wai-pack.yml index d1eca1656..b24422528 100644 --- a/.github/workflows/wai-pack.yml +++ b/.github/workflows/wai-pack.yml @@ -91,15 +91,15 @@ jobs: # The docker runners ship no Rust, so rustup is bootstrapped; the macOS host has # it, but launchd's PATH omits ~/.cargo/bin. - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 - rustup component add --toolchain 1.98.0 clippy + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 + rustup component add --toolchain 1.99.1 clippy echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # clippy::float_arithmetic is denied for the library and the CLI (Cargo.toml and @@ -163,14 +163,14 @@ jobs: working-directory: wai shell: bash run: python3 pack-conformance/pack_verify.py pack-conformance - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # The source readers differentially: seeded Y4M and WAV mutations, every verdict of # wai-pack (debug and release, both with overflow checks) equal to pack_verify.py's, @@ -262,14 +262,14 @@ jobs: runs-on: linux-arm64 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Install cargo-deny shell: bash diff --git a/.github/workflows/wai-quantum-cli-release.yml b/.github/workflows/wai-quantum-cli-release.yml index 439a12cab..8c946bfdd 100644 --- a/.github/workflows/wai-quantum-cli-release.yml +++ b/.github/workflows/wai-quantum-cli-release.yml @@ -100,14 +100,14 @@ jobs: triple: aarch64-unknown-linux-musl steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0, the musl target and musl-gcc + - name: Install Rust 1.99.1, the musl target and musl-gcc shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 rustup target add "${{ matrix.triple }}" SUDO=""; [ "$(id -u)" -ne 0 ] && SUDO="sudo" $SUDO apt-get update -qq diff --git a/.github/workflows/wai-quantum-cli.yml b/.github/workflows/wai-quantum-cli.yml index 3d1f43079..043421ec8 100644 --- a/.github/workflows/wai-quantum-cli.yml +++ b/.github/workflows/wai-quantum-cli.yml @@ -52,15 +52,15 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 with clippy and the wasm32-wasip2 target + - name: Install Rust 1.99.1 with clippy and the wasm32-wasip2 target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal --component clippy - rustup default 1.98.0 - rustup target add --toolchain 1.98.0 wasm32-wasip2 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal --component clippy + rustup default 1.99.1 + rustup target add --toolchain 1.99.1 wasm32-wasip2 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Tests and clippy, with and without submit shell: bash diff --git a/.github/workflows/wai-quantum-cuda.yml b/.github/workflows/wai-quantum-cuda.yml index f45a03cbb..1f4d9bb04 100644 --- a/.github/workflows/wai-quantum-cuda.yml +++ b/.github/workflows/wai-quantum-cuda.yml @@ -144,14 +144,14 @@ jobs: WAI_QUANTUM_CUDA_EXPECT: none steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: No CUDA here, and the member says so shell: bash diff --git a/.github/workflows/wai-quantum-fpga.yml b/.github/workflows/wai-quantum-fpga.yml index 659d8a8c3..30e3aaab8 100644 --- a/.github/workflows/wai-quantum-fpga.yml +++ b/.github/workflows/wai-quantum-fpga.yml @@ -111,14 +111,14 @@ jobs: WAI_QUANTUM_FPGA_EXPECT: none steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: No simulator here, and the member says so shell: bash diff --git a/.github/workflows/wai-quantum-hip.yml b/.github/workflows/wai-quantum-hip.yml index 74f6eecc7..e625e9125 100644 --- a/.github/workflows/wai-quantum-hip.yml +++ b/.github/workflows/wai-quantum-hip.yml @@ -146,14 +146,14 @@ jobs: WAI_QUANTUM_HIP_EXPECT: none steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: No HIP here, and the member says so shell: bash diff --git a/.github/workflows/wai-quantum-metal.yml b/.github/workflows/wai-quantum-metal.yml index ab5ddfc2b..318d3faa0 100644 --- a/.github/workflows/wai-quantum-metal.yml +++ b/.github/workflows/wai-quantum-metal.yml @@ -128,14 +128,14 @@ jobs: WAI_QUANTUM_METAL_EXPECT: none steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: No Metal here, and the member says so shell: bash diff --git a/.github/workflows/wai-quantum-npu-cores.yml b/.github/workflows/wai-quantum-npu-cores.yml index 99842bbde..6624c28d4 100644 --- a/.github/workflows/wai-quantum-npu-cores.yml +++ b/.github/workflows/wai-quantum-npu-cores.yml @@ -134,14 +134,14 @@ jobs: WAI_QUANTUM_NPU_CORES_EXPECT: none steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: No neural processor here, and the member says so shell: bash diff --git a/.github/workflows/wai-quantum-npu.yml b/.github/workflows/wai-quantum-npu.yml index 21f8d8e76..00dd17056 100644 --- a/.github/workflows/wai-quantum-npu.yml +++ b/.github/workflows/wai-quantum-npu.yml @@ -99,14 +99,14 @@ jobs: WAI_QUANTUM_NPU_EXPECT: none steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: No neural processor here, and the member says so shell: bash diff --git a/.github/workflows/wai-quantum-opencl.yml b/.github/workflows/wai-quantum-opencl.yml index 890f66452..b5cb7c9d1 100644 --- a/.github/workflows/wai-quantum-opencl.yml +++ b/.github/workflows/wai-quantum-opencl.yml @@ -258,14 +258,14 @@ jobs: WAI_QUANTUM_OPENCL_EXPECT: none steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: No OpenCL here, and the member says so shell: bash diff --git a/.github/workflows/wai-quantum-qpu.yml b/.github/workflows/wai-quantum-qpu.yml index 43875a6b6..238cb082a 100644 --- a/.github/workflows/wai-quantum-qpu.yml +++ b/.github/workflows/wai-quantum-qpu.yml @@ -53,14 +53,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal --component clippy - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal --component clippy + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Tests shell: bash diff --git a/.github/workflows/wai-quantum-service.yml b/.github/workflows/wai-quantum-service.yml index 3aaa942c6..d5a9e5ad2 100644 --- a/.github/workflows/wai-quantum-service.yml +++ b/.github/workflows/wai-quantum-service.yml @@ -51,14 +51,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal --component clippy - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal --component clippy + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Tests and clippy shell: bash diff --git a/.github/workflows/wai-quantum-studio.yml b/.github/workflows/wai-quantum-studio.yml index 3b801bf68..70d296175 100644 --- a/.github/workflows/wai-quantum-studio.yml +++ b/.github/workflows/wai-quantum-studio.yml @@ -65,14 +65,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 with the wasm32 target + - name: Install Rust 1.99.1 with the wasm32 target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 rustup target add wasm32-unknown-unknown echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # Pinned to the wasm-bindgen version in wai-web/Cargo.lock. diff --git a/.github/workflows/wai-quantum-tensor-engine.yml b/.github/workflows/wai-quantum-tensor-engine.yml index 9cc9d22fe..015aaf1f8 100644 --- a/.github/workflows/wai-quantum-tensor-engine.yml +++ b/.github/workflows/wai-quantum-tensor-engine.yml @@ -132,14 +132,14 @@ jobs: WAI_QUANTUM_TENSOR_ENGINE_EXPECT: none steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: No kernel toolchain here, and the member says so shell: bash diff --git a/.github/workflows/wai-quantum-webgpu.yml b/.github/workflows/wai-quantum-webgpu.yml index b28391928..5aacc3d6e 100644 --- a/.github/workflows/wai-quantum-webgpu.yml +++ b/.github/workflows/wai-quantum-webgpu.yml @@ -97,16 +97,16 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 (wasm32 targets) and 1.97.0 + - name: Install Rust 1.99.1 (wasm32 targets) and 1.97.0 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal rustup toolchain install 1.97.0 --profile minimal - rustup default 1.98.0 - rustup target add --toolchain 1.98.0 wasm32-unknown-unknown wasm32-wasip2 + rustup default 1.99.1 + rustup target add --toolchain 1.99.1 wasm32-unknown-unknown wasm32-wasip2 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: SPIR-V validator shell: bash @@ -176,14 +176,14 @@ jobs: WAI_QUANTUM_WEBGPU_EXPECT: swgpu-vulkan-10005 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: The Vulkan loader and a software Vulkan driver shell: bash diff --git a/.github/workflows/wai-sota-vectors.yml b/.github/workflows/wai-sota-vectors.yml index 331fcf66c..6b3a0832b 100644 --- a/.github/workflows/wai-sota-vectors.yml +++ b/.github/workflows/wai-sota-vectors.yml @@ -224,14 +224,14 @@ jobs: torchvision.ops.nms(torch.zeros(1, 4), torch.zeros(1), 0.5) PY # Bootstrap rustup: the docker runner image ships no Rust. - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Regenerate the int_hyper vectors (source photo → integer export → keyframe → clip) shell: bash diff --git a/.github/workflows/wai-vector.yml b/.github/workflows/wai-vector.yml index 1db17d08f..eb7cad123 100644 --- a/.github/workflows/wai-vector.yml +++ b/.github/workflows/wai-vector.yml @@ -124,14 +124,14 @@ jobs: # The docker images ship no Rust; the macOS host has it, but launchd's PATH omits # ~/.cargo/bin. - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # Debug builds check every arithmetic operation for overflow, so a bound the @@ -167,14 +167,14 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Install Rust 1.98.0 with the wasm32-wasip2 target + - name: Install Rust 1.99.1 with the wasm32-wasip2 target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 rustup target add wasm32-wasip2 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" @@ -221,14 +221,14 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Install Rust 1.98.0 with the wasm32 target + - name: Install Rust 1.99.1 with the wasm32 target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 rustup target add wasm32-unknown-unknown echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" @@ -267,14 +267,14 @@ jobs: # The image ships no Rust. wasm32v1-none is the package's target: its # precompiled core and alloc are WebAssembly 1.0, which those of # wasm32-unknown-unknown are not (wasm/build-pkg.sh says why that decides it). - - name: Install Rust 1.98.0 with the wasm32v1-none and wasm32-unknown-unknown targets + - name: Install Rust 1.99.1 with the wasm32v1-none and wasm32-unknown-unknown targets shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 rustup target add wasm32v1-none wasm32-unknown-unknown echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" @@ -338,14 +338,14 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # Every corpus vector and every file under fuzz/seeds/ as a seed, 2,000 diff --git a/.github/workflows/wai-web-reach.yml b/.github/workflows/wai-web-reach.yml index ef3e9360e..0b465c6a9 100644 --- a/.github/workflows/wai-web-reach.yml +++ b/.github/workflows/wai-web-reach.yml @@ -114,16 +114,16 @@ jobs: steps: - uses: actions/checkout@v5 # The docker runner image ships no Rust. - - name: Install Rust 1.98.0 with the wasm32 target + - name: Install Rust 1.99.1 with the wasm32 target if: matrix.leg == 'tree' shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 - rustup target add wasm32-unknown-unknown --toolchain 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 + rustup target add wasm32-unknown-unknown --toolchain 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # Pinned to the wasm-bindgen version in wai-web/Cargo.lock: the CLI and the crate # must match exactly. diff --git a/.github/workflows/wai-web-wasm.yml b/.github/workflows/wai-web-wasm.yml index 44e58e8f2..a4041f73c 100644 --- a/.github/workflows/wai-web-wasm.yml +++ b/.github/workflows/wai-web-wasm.yml @@ -109,14 +109,14 @@ jobs: steps: - uses: actions/checkout@v5 # The docker runner image ships no Rust. - - name: Install Rust 1.98.0 with the wasm32 target + - name: Install Rust 1.99.1 with the wasm32 target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 rustup target add wasm32-unknown-unknown echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # Pinned to the wasm-bindgen version in wai-web/Cargo.lock: the CLI and the diff --git a/eoc/eoc-rs/rust-toolchain.toml b/eoc/eoc-rs/rust-toolchain.toml index b2647615d..4fc422dc2 100644 --- a/eoc/eoc-rs/rust-toolchain.toml +++ b/eoc/eoc-rs/rust-toolchain.toml @@ -1,4 +1,4 @@ [toolchain] -channel = "1.98.0" +channel = "1.99.1" components = ["rustc", "cargo", "rust-std", "rustfmt", "clippy"] profile = "default" diff --git a/rust-toolchain.toml b/rust-toolchain.toml index b2647615d..4fc422dc2 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,4 +1,4 @@ [toolchain] -channel = "1.98.0" +channel = "1.99.1" components = ["rustc", "cargo", "rust-std", "rustfmt", "clippy"] profile = "default" -- 2.54.0 (Apple Git-157)