Bump pijul-core to edition 2024

berkus
Feb 17, 2026, 12:07 AM
OMGL7JBCLSHWTIYP7LSQXSUGBTIQFBD7VVCZCD27AORPOKOBTVMAC

Dependencies

  • [2] SXEYMYF7 Fixing the bad changes in history (unfortunately, by rebooting).
  • [3] I52XSRUH Massive cleanup, and simplification
  • [4] KDF6FJRV bigger clippy refactors
  • [5] VO5OQW4W Removing anyhow in libpijul
  • [6] 6YMDOZIB Refactoring apply
  • [7] CCLLB7OI Upgrading to Sanakirja 0.15 + version bump
  • [8] GHO6DWPI Refactoring iterators
  • [9] CT6FBU57 SDPX license + version bump
  • [10] YN63NUZO Sanakirja 1.0
  • [11] 7S4YD633 Change in semantic of the new Sanakirja compared to the previous one (get returns Some(…) even if the key is not found)
  • [12] QL6K2ZM3 Tags
  • [13] EEBKW7VT Keys and identities
  • [14] A3RM526Y Integrating identity malleability
  • [15] V4T4SC7O Testing binary diff
  • [16] U2CGP7OP Record a separate change for Hunk::AddRoot, to avoid #571
  • [17] 43SISRQ4 Formatting
  • [18] C267PHOH Tags: dropping useless Hashes in favour of Merkles
  • [19] DO2Y5TY5 Tag synchronisation
  • [20] FOCBVLOU Implement testing for identity management
  • [21] 26VQKD25 A more accurate safeguard for apply, to check if the output is nondestructive
  • [22] RVAH6PXA Getting libpijul to compile to WASM32
  • [23] GDAKVAFR Fixing apply (ghost channels could happen in case of error)
  • [24] OXZVZDQZ Simplification of missing context repairs
  • [25] QWIYNMI5 Formatting + big-endian Sanakirja
  • [26] JMOHVR5E Bump edition to 2021
  • [27] RIZ4IP76 Solving more conflicts
  • [28] 2MKP7CB7 Move dependencies into workspace `Cargo.toml`
  • [29] N26HD5PF Replace `chrono` with `jiff`
  • [30] LTI3LT2G Bump all dependencies to latest compatible minor versions
  • [31] PZ3BZ7FD 🧱 Lock all packages to the same version, use workspace attributes for author, license etc. fields
  • [32] XYTAZR36 Solving conflicts
  • [33] 7FP2DFNX Optimisation: avoid re-checking the entire repo when recording after an unrecord
  • [34] 5P6PAI5S Fixing the test for path_id
  • [35] AZM7VL5Z Support for sub-transactions
  • [36] C55NBE2R Version bump
  • [37] ELPODNAC Compilation error in tags
  • [38] AECQFAME Updating dependencies
  • [39] 4USQK3IW Big rename: libpijul => pijul-core, to match all other crates in the ecosystem
  • [40] 7JTKP74V Fixing a conflict
  • [41] ZDK3GNDB Tag transactions (including a massive refactoring of errors)
  • [42] PJ7T2VFL Do not hang on locked repositories
  • [43] R3H7D42U Debugging `pijul git`: proper error reporting
  • [44] YXAVFTPP Allowing vertex buffer to use references to the transaction, by changing `output::output` to take an ArcTxn<T> instead of a simple T
  • [45] CRLBACYQ Fixing conflicts
  • [46] VQQ23NP7 Fix conflicts
  • [47] 2BKYJ2JM Fixing a bug introduced by the recent refactoring
  • [48] N5XHCYVT Remove use of unsafe
  • [49] 5MRZLKBH Changing the type of the tags db, to make it identical to remote tags
  • [50] RUBBHYZ7 Removing unnecessary async/await
  • [51] WTQCVLAH Correctly putting states into channels
  • [52] ZCPGCKKY Fixing a bug where zombie files could be deleted by unrecord, but not their contents
  • [53] FXEDPLRI Resurrecting tests, and type cleanup (no need for Arc<RwLock<…>> anymore)
  • [54] ZDQB72IK When running `pijul apply` with stdin, immediately quit if the channel does not exist
  • [55] MQ6ERQ43 Bug fixes when unrecording a patch that introduced zombie files
  • [56] 5OGOE4VW Store the current channel in the pristine
  • [57] EUZFFJSO Updating Pijul with the latest changes in Libpijul
  • [58] SMMBFECL Converting to the new patch format "online"

Change contents

  • replacement in pijul-core/src/tests/diff.rs at line 3
    [15.205][15.205:274]()
    use rand::distributions::Alphanumeric;
    use rand::{Rng, SeedableRng};
    [15.205]
    [15.274]
    use rand::SeedableRng;
    use rand::distr::Alphanumeric;
  • edit in pijul-core/src/tests/diff.rs at line 28
    [15.1138]
    [33.10082]
    use rand::RngExt;
  • edit in pijul-core/src/tag.rs at line 1
    [12.6397][12.6398:6496]()
    use crate::pristine::sanakirja::{Channel, MutTxn, SanakirjaError, P, UP};
    use crate::pristine::*;
  • edit in pijul-core/src/tag.rs at line 3
    [12.6533]
    [12.6533]
    use crate::pristine::sanakirja::{Channel, MutTxn, P, SanakirjaError, UP};
    use crate::pristine::*;
  • edit in pijul-core/src/tag.rs at line 288
    [37.185][14.25143:25174](),[14.25143][14.25143:25174]()
    use rand::Rng;
  • edit in pijul-core/src/tag.rs at line 290
    [14.25280]
    [37.186]
    use rand::RngExt;
  • replacement in pijul-core/src/pristine/sanakirja.rs at line 78
    [22.1247][39.11092:11189](),[39.11189][2.531710:531760](),[5.13091][2.531710:531760](),[2.531710][2.531710:531760](),[2.531760][39.11190:11197]()
    pub unsafe fn new_nolock<P: AsRef<Path>>(name: P) -> Result<Self, SanakirjaError> { unsafe {
    Self::new_with_size_nolock(name, 1 << 20)
    }}
    [22.1247]
    [22.1248]
    pub unsafe fn new_nolock<P: AsRef<Path>>(name: P) -> Result<Self, SanakirjaError> {
    unsafe { Self::new_with_size_nolock(name, 1 << 20) }
    }
  • replacement in pijul-core/src/pristine/sanakirja.rs at line 101
    [2.532052][39.11198:11247](),[39.11247][2.532091:532113](),[5.13420][2.532091:532113](),[2.532091][2.532091:532113](),[2.532113][10.57238:57311](),[8.30252][2.532181:532192](),[10.57311][2.532181:532192](),[2.532181][2.532181:532192](),[2.532192][39.11248:11255]()
    ) -> Result<Self, SanakirjaError> { unsafe {
    Ok(Pristine {
    env: Arc::new(::sanakirja::Env::new_nolock(name, size, 2)?),
    })
    }}
    [2.532052]
    [5.13421]
    ) -> Result<Self, SanakirjaError> {
    unsafe {
    Ok(Pristine {
    env: Arc::new(::sanakirja::Env::new_nolock(name, size, 2)?),
    })
    }
    }
  • replacement in pijul-core/src/pristine/sanakirja.rs at line 169
    [25.12498][39.11256:11298](),[39.11298][2.534017:534037](),[2.534017][2.534017:534037](),[2.534037][39.11299:11316](),[39.11316][5.13616:13665](),[2.534054][5.13616:13665](),[5.13665][39.11317:11328]()
    match begin(txn) { Some(txn) => {
    Ok(txn)
    } _ => {
    Err(SanakirjaError::PristineCorrupt)
    }}
    [25.12498]
    [2.534118]
    match begin(txn) {
    Some(txn) => Ok(txn),
    _ => Err(SanakirjaError::PristineCorrupt),
    }
  • replacement in pijul-core/src/pristine/sanakirja.rs at line 281
    [35.2980][35.2980:3203]()
    T: ::sanakirja::AllocPage<Error = ::sanakirja::Error>
    + ::sanakirja::RootPageMut
    + ::sanakirja::Commit
    + ::sanakirja::LoadPage<Error = ::sanakirja::Error>,
    > RawMutTxnT for T
    [35.2980]
    [35.3203]
    T: ::sanakirja::AllocPage<Error = ::sanakirja::Error>
    + ::sanakirja::RootPageMut
    + ::sanakirja::Commit
    + ::sanakirja::LoadPage<Error = ::sanakirja::Error>,
    > RawMutTxnT for T
  • replacement in pijul-core/src/pristine/sanakirja.rs at line 1223
    [8.44151][39.11329:11397](),[39.11397][25.20315:20354](),[8.44210][25.20315:20354](),[25.20354][10.76131:76199](),[8.44210][10.76131:76199](),[10.76199][11.0:62](),[11.62][10.76285:76381](),[10.76285][10.76285:76381](),[10.76381][14.26385:26643](),[14.26643][18.4631:4689](),[18.4689][14.26702:26856](),[14.26702][14.26702:26856](),[12.24943][10.76731:76893](),[14.26856][10.76731:76893](),[10.76731][10.76731:76893]()
    ) -> Result<Option<Channel>, TxnErr<SanakirjaError>> { unsafe {
    debug!("unsafe load channel");
    match btree::get(&self.txn, &self.channels, &name, None)? {
    Some((name_, tup)) if name_ == name.as_ref() => {
    debug!("load_channel: {:?} {:?}", name, tup);
    Ok(Some(Channel {
    graph: Db::from_page(tup.graph.into()),
    changes: Db::from_page(tup.changes.into()),
    revchanges: UDb::from_page(tup.revchanges.into()),
    states: UDb::from_page(tup.states.into()),
    tags: Db::from_page(tup.tags.into()),
    apply_counter: tup.apply_counter.into(),
    last_modified: tup.last_modified.into(),
    id: tup.id,
    name,
    }))
    }
    _ => {
    debug!("unsafe_load_channel: not found");
    Ok(None)
    [8.44151]
    [10.76893]
    ) -> Result<Option<Channel>, TxnErr<SanakirjaError>> {
    unsafe {
    debug!("unsafe load channel");
    match btree::get(&self.txn, &self.channels, &name, None)? {
    Some((name_, tup)) if name_ == name.as_ref() => {
    debug!("load_channel: {:?} {:?}", name, tup);
    Ok(Some(Channel {
    graph: Db::from_page(tup.graph.into()),
    changes: Db::from_page(tup.changes.into()),
    revchanges: UDb::from_page(tup.revchanges.into()),
    states: UDb::from_page(tup.states.into()),
    tags: Db::from_page(tup.tags.into()),
    apply_counter: tup.apply_counter.into(),
    last_modified: tup.last_modified.into(),
    id: tup.id,
    name,
    }))
    }
    _ => {
    debug!("unsafe_load_channel: not found");
    Ok(None)
    }
  • replacement in pijul-core/src/pristine/sanakirja.rs at line 1247
    [8.44879][39.11398:11405]()
    }}
    [8.44879]
    [7.44457]
    }
  • replacement in pijul-core/src/pristine/sanakirja.rs at line 1654
    [35.3214][35.3214:3404]()
    T: sanakirja::AllocPage<Error = ::sanakirja::Error>
    + sanakirja::RootPage
    + sanakirja::LoadPage<Error = ::sanakirja::Error>,
    > GraphMutTxnT for MutTxn<T>
    [35.3214]
    [35.3404]
    T: sanakirja::AllocPage<Error = ::sanakirja::Error>
    + sanakirja::RootPage
    + sanakirja::LoadPage<Error = ::sanakirja::Error>,
    > GraphMutTxnT for MutTxn<T>
  • replacement in pijul-core/src/pristine/sanakirja.rs at line 1764
    [35.3413][35.3413:3605]()
    T: sanakirja::AllocPage<Error = ::sanakirja::Error>
    + sanakirja::RootPage
    + sanakirja::LoadPage<Error = ::sanakirja::Error>,
    > ChannelMutTxnT for MutTxn<T>
    [35.3413]
    [35.3605]
    T: sanakirja::AllocPage<Error = ::sanakirja::Error>
    + sanakirja::RootPage
    + sanakirja::LoadPage<Error = ::sanakirja::Error>,
    > ChannelMutTxnT for MutTxn<T>
  • replacement in pijul-core/src/pristine/sanakirja.rs at line 1805
    [2.560891][2.560891:560916](),[2.560916][10.84031:84127]()
    assert!(self
    .get_revchangeset(&channel.revchanges, &t.into())?
    .is_none());
    [2.560694]
    [10.84127]
    assert!(
    self.get_revchangeset(&channel.revchanges, &t.into())?
    .is_none()
    );
  • replacement in pijul-core/src/pristine/sanakirja.rs at line 1947
    [35.3804][35.3804:3993]()
    T: sanakirja::AllocPage<Error = ::sanakirja::Error>
    + sanakirja::RootPage
    + sanakirja::LoadPage<Error = ::sanakirja::Error>,
    > DepsMutTxnT for MutTxn<T>
    [35.3804]
    [35.3993]
    T: sanakirja::AllocPage<Error = ::sanakirja::Error>
    + sanakirja::RootPage
    + sanakirja::LoadPage<Error = ::sanakirja::Error>,
    > DepsMutTxnT for MutTxn<T>
  • replacement in pijul-core/src/pristine/sanakirja.rs at line 1959
    [35.4002][35.4002:4194]()
    T: sanakirja::AllocPage<Error = ::sanakirja::Error>
    + sanakirja::RootPageMut
    + sanakirja::LoadPage<Error = ::sanakirja::Error>,
    > TreeMutTxnT for MutTxn<T>
    [35.4002]
    [35.4194]
    T: sanakirja::AllocPage<Error = ::sanakirja::Error>
    + sanakirja::RootPageMut
    + sanakirja::LoadPage<Error = ::sanakirja::Error>,
    > TreeMutTxnT for MutTxn<T>
  • replacement in pijul-core/src/pristine/sanakirja.rs at line 2070
    [36.67][25.24994:25049](),[25.24994][25.24994:25049]()
    use rand::Rng;
    [36.67]
    [25.25049]
    use rand::RngExt;
  • replacement in pijul-core/src/pristine/sanakirja.rs at line 2128
    [36.186][14.29602:29645](),[14.29602][14.29602:29645]()
    use rand::Rng;
    [36.186]
    [14.29645]
    use rand::RngExt;
  • replacement in pijul-core/src/pristine/sanakirja.rs at line 2437
    [35.4248][35.4248:4421]()
    T: sanakirja::AllocPage<Error = ::sanakirja::Error>
    + sanakirja::RootPage
    + sanakirja::LoadPage<Error = ::sanakirja::Error>,
    > MutTxn<T>
    [35.4248]
    [35.4421]
    T: sanakirja::AllocPage<Error = ::sanakirja::Error>
    + sanakirja::RootPage
    + sanakirja::LoadPage<Error = ::sanakirja::Error>,
    > MutTxn<T>
  • edit in pijul-core/src/pristine/sanakirja.rs at line 2526
    [10.95433]
    [2.579202]
    }
    unsafe fn onpage_size(p: *const u8) -> usize {
    unsafe {
    let len = *(p.add(8)) as usize;
    9 + len
    }
  • replacement in pijul-core/src/pristine/sanakirja.rs at line 2533
    [2.579208][39.11406:11466]()
    unsafe fn onpage_size(p: *const u8) -> usize { unsafe {
    [2.579208]
    [10.95485]
    unsafe fn from_raw_ptr<'a, T>(_: &T, p: *const u8) -> &'a Self {
    unsafe { path_id_from_raw_ptr(p) }
    }
    unsafe fn write_to_page(&self, p: *mut u8) {
    unsafe {
    *(p as *mut u64) = (self.parent_inode.0).0;
    self.basename.write_to_page(p.add(8))
    }
    }
    }
    unsafe fn path_id_from_raw_ptr<'a>(p: *const u8) -> &'a PathId {
    unsafe {
  • replacement in pijul-core/src/pristine/sanakirja.rs at line 2547
    [10.95525][10.95525:95541](),[10.95541][39.11467:11552](),[39.11552][10.95611:95643](),[10.95611][10.95611:95643](),[10.95643][39.11553:11618](),[34.49][10.95693:95745](),[27.172][10.95693:95745](),[39.11618][10.95693:95745](),[25.34212][10.95693:95745](),[10.95693][10.95693:95745](),[10.95745][34.50:96](),[34.96][39.11619:11626]()
    9 + len
    }}
    unsafe fn from_raw_ptr<'a, T>(_: &T, p: *const u8) -> &'a Self { unsafe {
    path_id_from_raw_ptr(p)
    }}
    unsafe fn write_to_page(&self, p: *mut u8) { unsafe {
    *(p as *mut u64) = (self.parent_inode.0).0;
    self.basename.write_to_page(p.add(8))
    }}
    [10.95525]
    [2.580396]
    std::mem::transmute(std::slice::from_raw_parts(p, 1 + len as usize))
    }
  • edit in pijul-core/src/pristine/sanakirja.rs at line 2550
    [2.580398][2.580398:580399](),[2.580399][39.11627:11701](),[39.11701][10.95857:95966](),[10.95857][10.95857:95966](),[10.95966][39.11702:11705]()
    unsafe fn path_id_from_raw_ptr<'a>(p: *const u8) -> &'a PathId { unsafe {
    let len = *(p.add(8)) as usize;
    std::mem::transmute(std::slice::from_raw_parts(p, 1 + len as usize))
    }}
  • replacement in pijul-core/src/pristine/sanakirja.rs at line 2610
    [2.583994][39.11706:11766](),[39.11766][10.97305:97517](),[10.97305][10.97305:97517](),[10.97517][39.11767:11852](),[39.11852][10.97587:97616](),[10.97587][10.97587:97616](),[10.97616][39.11853:11960](),[39.11960][27.320:362](),[27.320][27.320:362](),[27.362][10.97699:97769](),[25.34384][10.97699:97769](),[10.97699][10.97699:97769](),[10.97769][27.363:414](),[27.414][39.11961:11968]()
    unsafe fn onpage_size(p: *const u8) -> usize { unsafe {
    let a = A::onpage_size(p);
    let b_off = (a + (B::ALIGN - 1)) & !(B::ALIGN - 1);
    let b_size = B::onpage_size(p.add(b_off));
    (b_off + b_size + (Self::ALIGN - 1)) & !(Self::ALIGN - 1)
    }}
    unsafe fn from_raw_ptr<'a, T>(_: &T, p: *const u8) -> &'a Self { unsafe {
    &*(p as *const Self)
    }}
    unsafe fn write_to_page_alloc<T: sanakirja::AllocPage>(&self, t: &mut T, p: *mut u8) { unsafe {
    self.a.write_to_page_alloc(t, p);
    let off = (self.a.size() + (B::ALIGN - 1)) & !(B::ALIGN - 1);
    self.b.write_to_page_alloc(t, p.add(off));
    }}
    [2.583994]
    [2.584951]
    unsafe fn onpage_size(p: *const u8) -> usize {
    unsafe {
    let a = A::onpage_size(p);
    let b_off = (a + (B::ALIGN - 1)) & !(B::ALIGN - 1);
    let b_size = B::onpage_size(p.add(b_off));
    (b_off + b_size + (Self::ALIGN - 1)) & !(Self::ALIGN - 1)
    }
    }
    unsafe fn from_raw_ptr<'a, T>(_: &T, p: *const u8) -> &'a Self {
    unsafe { &*(p as *const Self) }
    }
    unsafe fn write_to_page_alloc<T: sanakirja::AllocPage>(&self, t: &mut T, p: *mut u8) {
    unsafe {
    self.a.write_to_page_alloc(t, p);
    let off = (self.a.size() + (B::ALIGN - 1)) & !(B::ALIGN - 1);
    self.b.write_to_page_alloc(t, p.add(off));
    }
    }
  • edit in pijul-core/src/pristine/sanakirja.rs at line 2648
    [19.43556]
    [14.33477]
    }
    unsafe fn onpage_size(p: *const u8) -> usize {
    unsafe { REMOTE_LEN + 1 + (*p.add(REMOTE_LEN)) as usize }
  • replacement in pijul-core/src/pristine/sanakirja.rs at line 2652
    [14.33483][39.11969:12029](),[39.12029][19.43557:43612](),[14.33534][19.43557:43612](),[19.43612][39.12030:12115](),[39.12115][19.43613:43660](),[14.33644][19.43613:43660](),[19.43660][14.33683:33810](),[14.33683][14.33683:33810](),[14.33810][39.12116:12223](),[27.506][14.33865:33957](),[39.12223][14.33865:33957](),[25.34516][14.33865:33957](),[14.33865][14.33865:33957](),[14.33957][19.43661:43707](),[19.43707][14.33991:34053](),[14.33991][14.33991:34053](),[14.34053][19.43708:43784](),[19.43784][14.34117:34128](),[14.34117][14.34117:34128](),[14.34128][39.12224:12231]()
    unsafe fn onpage_size(p: *const u8) -> usize { unsafe {
    REMOTE_LEN + 1 + (*p.add(REMOTE_LEN)) as usize
    }}
    unsafe fn from_raw_ptr<'a, T>(_: &T, p: *const u8) -> &'a Self { unsafe {
    let len = *p.add(REMOTE_LEN) as usize;
    let m: &SerializedRemote =
    std::mem::transmute(std::slice::from_raw_parts(p, 1 + len as usize));
    m
    }}
    unsafe fn write_to_page_alloc<T: sanakirja::AllocPage>(&self, _: &mut T, p: *mut u8) { unsafe {
    std::ptr::copy(
    &self.remote as *const L64 as *const u8,
    p,
    REMOTE_LEN + 1 + self.path.len(),
    );
    debug!(
    "write_to_page: {:?}",
    std::slice::from_raw_parts(p, REMOTE_LEN + 1 + self.path.len())
    );
    }}
    [14.33483]
    [14.34134]
    unsafe fn from_raw_ptr<'a, T>(_: &T, p: *const u8) -> &'a Self {
    unsafe {
    let len = *p.add(REMOTE_LEN) as usize;
    let m: &SerializedRemote =
    std::mem::transmute(std::slice::from_raw_parts(p, 1 + len as usize));
    m
    }
    }
    unsafe fn write_to_page_alloc<T: sanakirja::AllocPage>(&self, _: &mut T, p: *mut u8) {
    unsafe {
    std::ptr::copy(
    &self.remote as *const L64 as *const u8,
    p,
    REMOTE_LEN + 1 + self.path.len(),
    );
    debug!(
    "write_to_page: {:?}",
    std::slice::from_raw_parts(p, REMOTE_LEN + 1 + self.path.len())
    );
    }
    }
  • replacement in pijul-core/src/key.rs at line 103
    [29.4251][13.7830:7857](),[14.38510][13.7830:7857](),[13.7830][13.7830:7857]()
    use rand::RngCore;
    [29.4251]
    [13.7857]
    use rand::Rng;
  • replacement in pijul-core/src/key.rs at line 121
    [13.8312][13.8312:8347]()
    use rand::Rng;
    [13.8312]
    [38.197]
    use rand::RngExt;
  • replacement in pijul-core/src/key.rs at line 340
    [13.15319][13.15319:15441]()
    cipher::FromBlockCipher, cipher::StreamCipher, Aes128, Aes128Ctr,
    NewBlockCipher,
    [13.15319]
    [13.15441]
    Aes128, Aes128Ctr, NewBlockCipher, cipher::FromBlockCipher,
    cipher::StreamCipher,
  • replacement in pijul-core/src/apply.rs at line 787
    [24.5164][24.5164:5216]()
    next_vertex.change.0 .0, still_here
    [24.5164]
    [24.5216]
    next_vertex.change.0.0, still_here
  • replacement in pijul-core/src/apply.rs at line 792
    [10.147009][39.17538:17611](),[39.17611][2.971765:971801](),[8.66636][2.971765:971801](),[3.70822][2.971765:971801](),[10.147080][2.971765:971801](),[2.971765][2.971765:971801](),[2.971801][39.17612:17633](),[39.17633][2.971822:971848](),[2.971822][2.971822:971848](),[2.971848][39.17634:17723](),[39.17723][4.1656:1688](),[8.66704][4.1656:1688](),[10.147151][4.1656:1688](),[4.1656][4.1656:1688](),[4.1688][39.17724:17741](),[39.17741][4.1689:1711](),[2.971879][4.1689:1711](),[4.1711][39.17742:17755]()
    match txn.find_block_end(channel, p.dest()) { Ok(&dest) => {
    (dest, next_vertex)
    } _ => {
    continue;
    }}
    } else { match txn.find_block(channel, p.dest()) { Ok(&dest) => {
    (next_vertex, dest)
    } _ => {
    continue;
    }}};
    [10.147009]
    [10.147152]
    match txn.find_block_end(channel, p.dest()) {
    Ok(&dest) => (dest, next_vertex),
    _ => {
    continue;
    }
    }
    } else {
    match txn.find_block(channel, p.dest()) {
    Ok(&dest) => (next_vertex, dest),
    _ => {
    continue;
    }
    }
    };
  • replacement in pijul-core/src/apply.rs at line 1109
    [6.27026][39.17898:17929](),[39.17929][7.133879:133928](),[7.133879][7.133879:133928](),[7.133928][39.17930:17955](),[39.17955][7.133953:133979](),[7.133953][7.133953:133979](),[7.133979][39.17956:17976]()
    { Some(e) => {
    e?;
    true
    } _ => {
    false
    }};
    [6.27026]
    [10.147898]
    {
    Some(e) => {
    e?;
    true
    }
    _ => false,
    };
  • edit in pijul-core/src/apply.rs at line 1254
    [16.1570]
    [17.556]
    use rand::RngExt;
  • replacement in pijul-core/Cargo.toml at line 8
    [31.934][26.54:71](),[2.1021069][26.54:71]()
    edition = "2021"
    [31.934]
    [9.58]
    edition.workspace = true
  • edit in pijul/tests/common/mod.rs at line 81
    [20.12870]
    [20.12870]
    // this matches against a type but given a variable..
  • replacement in pijul/src/commands/protocol.rs at line 302
    [2.131981][2.131981:132020]()
    use rand::Rng;
    [2.131981]
    [35.1816]
    use rand::RngExt;
  • replacement in pijul/src/commands/apply.rs at line 50
    [39.32431][21.31:54](),[21.31][21.31:54]()
    use rand::Rng;
    [39.32431]
    [23.0]
    use rand::RngExt;
  • replacement in Cargo.toml at line 88
    [28.7281][36.350:383]()
    rand = "0.9"
    rand_chacha = "0.9"
    [28.7281]
    [30.437]
    rand = "0.10"
    rand_chacha = "0.10"
  • replacement in Cargo.lock at line 34
    [32.949][32.949:965]()
    "cpufeatures",
    [32.949]
    [32.965]
    "cpufeatures 0.2.17",
  • edit in Cargo.lock at line 336
    [32.8774]
    [32.8774]
    name = "chacha20"
    version = "0.10.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601"
    dependencies = [
    "cfg-if",
    "cpufeatures 0.3.0",
    "rand_core 0.10.0",
    ]
    [[package]]
  • edit in Cargo.lock at line 490
    [32.12471]
    [32.12471]
    dependencies = [
    "libc",
    ]
    [[package]]
    name = "cpufeatures"
    version = "0.3.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201"
  • replacement in Cargo.lock at line 607
    [36.637][36.637:653]()
    "cpufeatures",
    [36.637]
    [36.653]
    "cpufeatures 0.2.17",
  • edit in Cargo.lock at line 1153
    [32.27443]
    [32.27443]
    name = "getrandom"
    version = "0.4.1"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec"
    dependencies = [
    "cfg-if",
    "libc",
    "r-efi",
    "rand_core 0.10.0",
    "wasip2",
    "wasip3",
    ]
    [[package]]
  • edit in Cargo.lock at line 1434
    [32.33657]
    [32.33657]
    name = "id-arena"
    version = "2.3.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954"
    [[package]]
  • edit in Cargo.lock at line 1493
    [32.34950]
    [32.34950]
    "serde",
    "serde_core",
  • edit in Cargo.lock at line 1653
    [32.39013]
    [32.39013]
    [[package]]
    name = "leb128fmt"
    version = "0.1.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2"
  • replacement in Cargo.lock at line 2265
    [32.57980][36.1475:1490]()
    "rand 0.9.2",
    [32.57980]
    [32.57995]
    "rand 0.10.0",
  • replacement in Cargo.lock at line 2333
    [39.34497][39.34497:34534]()
    "rand 0.9.2",
    "rand_chacha 0.9.0",
    [39.34497]
    [39.34534]
    "rand 0.10.0",
    "rand_chacha 0.10.0",
  • edit in Cargo.lock at line 2486
    [32.61021]
    [32.61021]
    name = "prettyplease"
    version = "0.2.37"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b"
    dependencies = [
    "proc-macro2",
    "syn",
    ]
    [[package]]
  • replacement in Cargo.lock at line 2588
    [36.1682][36.1682:1700]()
    version = "0.9.2"
    [36.1682]
    [36.1700]
    version = "0.10.0"
  • replacement in Cargo.lock at line 2590
    [36.1765][36.1765:1843]()
    checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1"
    [36.1765]
    [36.1843]
    checksum = "bc266eb313df6c5c09c1c7b1fbe2510961e5bcd3add930c1e31f7ed9da0feff8"
  • replacement in Cargo.lock at line 2592
    [36.1860][36.1860:1902]()
    "rand_chacha 0.9.0",
    "rand_core 0.9.3",
    [36.1860]
    [32.63206]
    "chacha20",
    "getrandom 0.4.1",
    "rand_core 0.10.0",
  • replacement in Cargo.lock at line 2619
    [36.1924][36.1924:1942]()
    version = "0.9.0"
    [36.1924]
    [36.1942]
    version = "0.10.0"
  • replacement in Cargo.lock at line 2621
    [36.2007][36.2007:2085]()
    checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
    [36.2007]
    [36.2085]
    checksum = "3e6af7f3e25ded52c41df4e0b1af2d047e45896c2f3281792ed68a1c243daedb"
  • replacement in Cargo.lock at line 2624
    [36.2117][36.2117:2137]()
    "rand_core 0.9.3",
    [36.2117]
    [36.2137]
    "rand_core 0.10.0",
  • replacement in Cargo.lock at line 2647
    [36.2172][36.2172:2190]()
    version = "0.9.3"
    [36.2172]
    [36.2190]
    version = "0.10.0"
  • replacement in Cargo.lock at line 2649
    [36.2255][36.2255:2372]()
    checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38"
    dependencies = [
    "getrandom 0.3.4",
    ]
    [36.2255]
    [36.2372]
    checksum = "0c8d0fd677905edcbeedbf2edb6494d676f0e98d54d5cf9bda0b061cb8fb8aba"
  • replacement in Cargo.lock at line 3024
    [32.72569][32.72569:72585]()
    "cpufeatures",
    [32.72569]
    [32.72585]
    "cpufeatures 0.2.17",
  • replacement in Cargo.lock at line 3036
    [32.72838][32.72838:72854]()
    "cpufeatures",
    [32.72838]
    [32.72854]
    "cpufeatures 0.2.17",
  • edit in Cargo.lock at line 3591
    [32.86091]
    [32.86091]
    name = "unicode-xid"
    version = "0.2.6"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
    [[package]]
  • replacement in Cargo.lock at line 3693
    [32.88742][32.88742:88758]()
    "wit-bindgen",
    [32.88742]
    [32.88758]
    "wit-bindgen 0.46.0",
    ]
    [[package]]
    name = "wasip3"
    version = "0.4.0+wasi-0.3.0-rc-2026-01-06"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5"
    dependencies = [
    "wit-bindgen 0.51.0",
  • edit in Cargo.lock at line 3770
    [32.90364]
    [32.90364]
    name = "wasm-encoder"
    version = "0.244.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319"
    dependencies = [
    "leb128fmt",
    "wasmparser",
    ]
    [[package]]
    name = "wasm-metadata"
    version = "0.244.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909"
    dependencies = [
    "anyhow",
    "indexmap",
    "wasm-encoder",
    "wasmparser",
    ]
    [[package]]
  • edit in Cargo.lock at line 3802
    [32.90646]
    [32.90646]
    ]
    [[package]]
    name = "wasmparser"
    version = "0.244.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe"
    dependencies = [
    "bitflags 2.10.0",
    "hashbrown 0.15.5",
    "indexmap",
    "semver",
  • edit in Cargo.lock at line 4270
    [32.102823]
    [32.102823]
    [[package]]
    name = "wit-bindgen"
    version = "0.51.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5"
    dependencies = [
    "wit-bindgen-rust-macro",
    ]
    [[package]]
    name = "wit-bindgen-core"
    version = "0.51.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc"
    dependencies = [
    "anyhow",
    "heck",
    "wit-parser",
    ]
    [[package]]
    name = "wit-bindgen-rust"
    version = "0.51.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21"
    dependencies = [
    "anyhow",
    "heck",
    "indexmap",
    "prettyplease",
    "syn",
    "wasm-metadata",
    "wit-bindgen-core",
    "wit-component",
    ]
    [[package]]
    name = "wit-bindgen-rust-macro"
    version = "0.51.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a"
    dependencies = [
    "anyhow",
    "prettyplease",
    "proc-macro2",
    "quote",
    "syn",
    "wit-bindgen-core",
    "wit-bindgen-rust",
    ]
    [[package]]
    name = "wit-component"
    version = "0.244.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2"
    dependencies = [
    "anyhow",
    "bitflags 2.10.0",
    "indexmap",
    "log",
    "serde",
    "serde_derive",
    "serde_json",
    "wasm-encoder",
    "wasm-metadata",
    "wasmparser",
    "wit-parser",
    ]
  • edit in Cargo.lock at line 4342
    [32.102836]
    [32.102836]
    name = "wit-parser"
    version = "0.244.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736"
    dependencies = [
    "anyhow",
    "id-arena",
    "indexmap",
    "log",
    "semver",
    "serde",
    "serde_derive",
    "serde_json",
    "unicode-xid",
    "wasmparser",
    ]
    [[package]]