Skip to content

Commit 3616bfd

Browse files
committed
Update dependencies
1 parent 3dba01d commit 3616bfd

11 files changed

Lines changed: 228 additions & 176 deletions

File tree

Cargo.lock

Lines changed: 157 additions & 105 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ members = ["proc", "cli", "libs"]
1717
[dependencies]
1818
ahash = "0.8"
1919
anyhow = "1.0"
20-
base64 = "0.21"
20+
base64 = "0.22"
2121
crc = "3.0"
2222
dyn-clone = "1.0"
2323
everscale-crypto = "0.2"
@@ -30,10 +30,13 @@ sha2 = "0.10"
3030
thiserror = "1.0"
3131
unicode-segmentation = "1.0"
3232

33-
everscale-types = { version = "0.1.0-rc.6", default-features = false, features = [
33+
everscale-types = { version = "0.1.2", default-features = false, features = [
3434
"sync",
3535
"base64",
3636
"models",
3737
] }
3838

3939
fift-proc = { path = "./proc", version = "=0.1.15" }
40+
41+
[patch.crates-io]
42+
everscale-types = { git = "https://github.com/broxus/everscale-types.git", rev = "6e3c289f9bbf46337b11b24656a9c87ce409323e" }

cli/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ anyhow = "1.0"
1717
argh = "0.1"
1818
bitflags = "2.3"
1919
console = "0.15"
20-
rustyline = { version = "12.0", default-features = false }
21-
unicode-width = "0.1"
20+
rustyline = { version = "15.0", default-features = false }
21+
unicode-width = "0.2"
2222

2323
fift = { path = "..", version = "=0.1.23" }
2424
fift-libs = { path = "../libs", version = "0.1.23" }

cli/src/main.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ struct App {
4747
source_files: Vec<String>,
4848
}
4949

50+
#[allow(unused)]
5051
#[derive(Default)]
5152
struct ScriptModeDelim;
5253

proc/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@ proc-macro = true
1313
[dependencies]
1414
quote = "1.0"
1515
syn = "2.0"
16-
darling = "0.20"
16+
darling = "0.20.10"

src/core/cont.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -772,7 +772,7 @@ impl ContImpl for StackWordFunc {
772772
}
773773
}
774774

775-
/// === impl Context ===
775+
// === impl Context ===
776776

777777
impl Context<'_> {
778778
fn insert_before_next(&mut self, cont: &mut Option<Cont>) {

src/core/stack.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -426,8 +426,8 @@ define_stack_value! {
426426
Builder(CellBuilder) = {
427427
eq(a, b) = a == b,
428428
fmt_dump(v, f) = {
429-
let bytes = (v.bit_len() + 7) / 8;
430-
write!(f, "BC{{{}, bits={}}}", hex::encode(&v.raw_data()[..bytes as usize]), v.bit_len())
429+
let bytes = (v.size_bits() + 7) / 8;
430+
write!(f, "BC{{{}, bits={}}}", hex::encode(&v.raw_data()[..bytes as usize]), v.size_bits())
431431
},
432432
as_builder(v): &CellBuilder = Ok(v),
433433
into_builder,
@@ -642,7 +642,7 @@ impl From<CellSliceParts> for OwnedCellSlice {
642642
impl PartialEq<CellSlice<'_>> for OwnedCellSlice {
643643
fn eq(&self, right: &CellSlice<'_>) -> bool {
644644
if let Ok(left) = self.apply() {
645-
if let Ok(std::cmp::Ordering::Equal) = left.cmp_by_content(right) {
645+
if let Ok(std::cmp::Ordering::Equal) = left.lex_cmp(right) {
646646
return true;
647647
}
648648
}

src/modules/cell_utils.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ impl CellUtils {
132132
let mut cb1 = stack.pop_builder()?;
133133
{
134134
let cb1 = Rc::make_mut(&mut cb1);
135-
cb1.store_raw(cb2.raw_data(), cb2.bit_len())?;
135+
cb1.store_raw(cb2.raw_data(), cb2.size_bits())?;
136136
for cell in cb2.references() {
137137
cb1.store_reference(cell.clone())?;
138138
}
@@ -146,7 +146,7 @@ impl CellUtils {
146146
fn interpret_builder_bitrefs(stack: &mut Stack, bits: bool, refs: bool) -> Result<()> {
147147
let cb = stack.pop_builder()?;
148148
if bits {
149-
stack.push_int(cb.bit_len())?;
149+
stack.push_int(cb.size_bits())?;
150150
}
151151
if refs {
152152
stack.push_int(cb.references().len())?;
@@ -160,7 +160,7 @@ impl CellUtils {
160160
fn interpret_builder_rem_bitrefs(stack: &mut Stack, bits: bool, refs: bool) -> Result<()> {
161161
let cb = stack.pop_builder()?;
162162
if bits {
163-
stack.push_int(MAX_BIT_LEN - cb.bit_len())?;
163+
stack.push_int(MAX_BIT_LEN - cb.size_bits())?;
164164
}
165165
if refs {
166166
stack.push_int(MAX_REF_COUNT - cb.references().len())?;
@@ -207,9 +207,9 @@ impl CellUtils {
207207
let mut cs_raw = stack.pop_slice()?;
208208

209209
let mut range = cs_raw.range();
210-
if !range.try_advance(bits, refs) {
210+
if let Err(e) = range.skip_first(bits, refs) {
211211
if !quiet {
212-
anyhow::bail!(everscale_types::error::Error::CellUnderflow);
212+
anyhow::bail!(e);
213213
}
214214
if adv {
215215
stack.push_raw(cs_raw)?;
@@ -385,10 +385,10 @@ impl CellUtils {
385385
fn interpret_slice_bitrefs(stack: &mut Stack, bits: bool, refs: bool) -> Result<()> {
386386
let cs = stack.pop_slice()?;
387387
if bits {
388-
stack.push_int(cs.range().remaining_bits())?;
388+
stack.push_int(cs.range().size_bits())?;
389389
}
390390
if refs {
391-
stack.push_int(cs.range().remaining_refs())?;
391+
stack.push_int(cs.range().size_refs())?;
392392
}
393393
Ok(())
394394
}
@@ -461,7 +461,7 @@ impl CellUtils {
461461
let cell = stack.pop_cell()?;
462462

463463
let mut result = Vec::new();
464-
BocHeader::<ahash::RandomState>::new(&**cell)
464+
BocHeader::<ahash::RandomState>::with_root(&**cell)
465465
.with_crc(mode & MODE_WITH_CRC != 0)
466466
.encode(&mut result);
467467

@@ -532,8 +532,8 @@ impl<'a> StorageStat<'a> {
532532
}
533533

534534
fn add_slice<'b: 'a>(&mut self, slice: &'a CellSlice<'b>) -> bool {
535-
self.bits = self.bits.saturating_add(slice.remaining_bits() as u64);
536-
self.refs = self.refs.saturating_add(slice.remaining_refs() as u64);
535+
self.bits = self.bits.saturating_add(slice.size_bits() as u64);
536+
self.refs = self.refs.saturating_add(slice.size_refs() as u64);
537537

538538
for cell in slice.references() {
539539
if !self.add_cell(cell) {

src/modules/dict_utils.rs

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ impl DictUtils {
6969
let mut cell = pop_maybe_cell(stack)?;
7070
let key = pop_dict_key(stack, key, bits)?;
7171
anyhow::ensure!(
72-
key.range().remaining_bits() >= bits,
72+
key.range().size_bits() >= bits,
7373
"Not enough bits for a dictionary key"
7474
);
7575

@@ -106,7 +106,7 @@ impl DictUtils {
106106
let cell = pop_maybe_cell(stack)?;
107107
let key = pop_dict_key(stack, key, bits)?;
108108
anyhow::ensure!(
109-
key.range().remaining_bits() >= bits,
109+
key.range().size_bits() >= bits,
110110
"Not enough bits for a dictionary key"
111111
);
112112

@@ -136,7 +136,7 @@ impl DictUtils {
136136
let mut dict = pop_maybe_cell(stack)?;
137137
let key = pop_dict_key(stack, key, bits)?;
138138
anyhow::ensure!(
139-
key.range().remaining_bits() >= bits,
139+
key.range().size_bits() >= bits,
140140
"Not enough bits for a dictionary key"
141141
);
142142

@@ -266,7 +266,7 @@ impl LoopContImpl for DictMapCont {
266266
dict_insert(
267267
&mut self.result,
268268
&mut key.as_data_slice(),
269-
key.bit_len(),
269+
key.size_bits(),
270270
&value.as_full_slice(),
271271
SetMode::Set,
272272
&mut Cell::empty_context(),
@@ -305,7 +305,7 @@ impl LoopContImpl for DictDiffCont {
305305
let (key, left_value) = self.left.next().unwrap()?;
306306
let (_, right_value) = self.right.next().unwrap()?;
307307

308-
if left_value.apply()?.cmp_by_content(&right_value.apply()?)?
308+
if left_value.apply()?.lex_cmp(&right_value.apply()?)?
309309
== std::cmp::Ordering::Equal
310310
{
311311
continue;
@@ -379,7 +379,7 @@ impl LoopContImpl for DictMergeCont {
379379
dict_insert(
380380
&mut self.result,
381381
&mut key.as_data_slice(),
382-
key.bit_len(),
382+
key.size_bits(),
383383
&value.apply()?,
384384
SetMode::Set,
385385
&mut Cell::empty_context(),
@@ -407,7 +407,7 @@ impl LoopContImpl for DictMergeCont {
407407
dict_insert(
408408
&mut self.result,
409409
&mut key.as_data_slice(),
410-
key.bit_len(),
410+
key.size_bits(),
411411
&value.as_full_slice(),
412412
SetMode::Set,
413413
&mut Cell::empty_context(),
@@ -465,7 +465,8 @@ impl OwnedDictIter {
465465

466466
// SAFETY: iter lifetime is bounded to the `DynCell` which lives as long
467467
// as `Cell` lives. By storing root we guarantee that it will live enough.
468-
let inner = unsafe { std::mem::transmute::<_, dict::RawIter<'static>>(inner) };
468+
let inner =
469+
unsafe { std::mem::transmute::<dict::RawIter<'_>, dict::RawIter<'static>>(inner) };
469470

470471
Self { root, inner }
471472
}
@@ -518,7 +519,7 @@ fn pop_dict_key(stack: &mut Stack, key_mode: KeyMode, bits: u16) -> Result<Owned
518519
}
519520

520521
fn builder_to_int(builder: &CellBuilder, signed: bool) -> Result<BigInt> {
521-
let bits = builder.bit_len();
522+
let bits = builder.size_bits();
522523
anyhow::ensure!(
523524
bits <= (256 + signed as u16),
524525
"Key does not fit into integer"

src/modules/vm_utils.rs

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -744,7 +744,7 @@ struct DispatchTable {
744744

745745
impl DispatchTable {
746746
fn get_opcode_from_slice(slice: &CellSlice<'_>) -> (u32, u16) {
747-
let bits = std::cmp::min(MAX_OPCODE_BITS, slice.remaining_bits());
747+
let bits = std::cmp::min(MAX_OPCODE_BITS, slice.size_bits());
748748
let opcode = (slice.get_uint(0, bits).unwrap() as u32) << (MAX_OPCODE_BITS - bits);
749749
(opcode, bits)
750750
}
@@ -992,7 +992,7 @@ impl Opcode for SimpleOpcode {
992992
f: &mut dyn std::fmt::Write,
993993
) -> Result<()> {
994994
if bits >= self.bits {
995-
slice.try_advance(self.bits, 0);
995+
slice.skip_first(self.bits, 0)?;
996996
f.write_str(self.name)?;
997997
}
998998
Ok(())
@@ -1023,7 +1023,7 @@ impl Opcode for FixedOpcode {
10231023
f: &mut dyn std::fmt::Write,
10241024
) -> Result<()> {
10251025
if bits >= self.total_bits {
1026-
slice.try_advance(self.total_bits, 0);
1026+
slice.skip_first(self.total_bits, 0)?;
10271027
(self.dump)(slice, opcode >> (MAX_OPCODE_BITS - self.total_bits), f)?;
10281028
}
10291029
Ok(())
@@ -1253,7 +1253,7 @@ fn dump_push_int(
12531253
return Ok(());
12541254
}
12551255

1256-
cs.try_advance(bits, 0);
1256+
cs.skip_first(bits, 0)?;
12571257

12581258
let mut bytes = [0u8; 33];
12591259
let rem = value_len % 8;
@@ -1276,7 +1276,7 @@ fn dump_push_ref(name: &'static str) -> Box<FnDumpInstr> {
12761276
if !cs.has_remaining(0, 1) {
12771277
return Ok(());
12781278
}
1279-
cs.try_advance(bits, 0);
1279+
cs.skip_first(bits, 0)?;
12801280
let cell = cs.load_reference()?;
12811281
write!(f, "{name} ({})", cell.repr_hash())?;
12821282
Ok(())
@@ -1296,7 +1296,7 @@ fn dump_push_ref2(name: &'static str) -> Box<FnDumpInstr> {
12961296
if !cs.has_remaining(0, 2) {
12971297
return Ok(());
12981298
}
1299-
cs.try_advance(bits, 0);
1299+
cs.skip_first(bits, 0)?;
13001300
let cell1 = cs.load_reference()?;
13011301
let cell2 = cs.load_reference()?;
13021302
write!(f, "{name} ({}) ({})", cell1.repr_hash(), cell2.repr_hash())?;
@@ -1327,7 +1327,7 @@ fn dump_if_bit_jmpref(
13271327
if cs.is_refs_empty() {
13281328
return Ok(());
13291329
}
1330-
cs.try_advance(bits, 1);
1330+
cs.skip_first(bits, 1)?;
13311331
let neg = if args & 0x20 != 0 { "N" } else { "" };
13321332
write!(f, "IF{neg}BITJMPREF {}", args & 0x1f)?;
13331333
Ok(())
@@ -1422,9 +1422,9 @@ fn dump_push_const_dict(name: &'static str) -> Box<FnDumpInstr> {
14221422
if !cs.has_remaining(bits, 1) {
14231423
return Ok(());
14241424
}
1425-
cs.try_advance(bits - 11, 0);
1425+
cs.skip_first(bits - 11, 0)?;
14261426
let slice = cs.get_prefix(1, 1);
1427-
cs.try_advance(1, 1);
1427+
cs.skip_first(1, 1)?;
14281428
let n = cs.load_uint(10)?;
14291429

14301430
write!(f, "{name} {n} (x{})", slice.display_data())?;
@@ -1549,14 +1549,14 @@ fn dump_push_slice_ext(
15491549
if !cs.has_remaining(bits + slice_bits, slice_refs) {
15501550
return Ok(());
15511551
}
1552-
cs.try_advance(bits, 0);
1552+
cs.skip_first(bits, 0)?;
15531553
let mut slice = cs.get_prefix(slice_bits, slice_refs);
1554-
cs.try_advance(slice_bits, slice_refs);
1554+
cs.skip_first(slice_bits, slice_refs)?;
15551555
slice_trim_end(&mut slice)?;
15561556

15571557
write!(f, "{name} x{}", slice.display_data())?;
15581558
if !slice.is_refs_empty() {
1559-
write!(f, ",{}", slice.remaining_refs())?;
1559+
write!(f, ",{}", slice.size_refs())?;
15601560
}
15611561
Ok(())
15621562
}
@@ -1581,14 +1581,14 @@ fn dump_dummy_debug_str(
15811581
if !cs.has_remaining(bits + slice_bits, 0) {
15821582
return Ok(());
15831583
}
1584-
cs.try_advance(bits, 0);
1584+
cs.skip_first(bits, 0)?;
15851585
let mut slice = cs.get_prefix(slice_bits, 0);
1586-
cs.try_advance(slice_bits, 0);
1586+
cs.skip_first(slice_bits, 0)?;
15871587
slice_trim_end(&mut slice)?;
15881588

15891589
write!(f, "DEBUGSTR x{}", slice.display_data())?;
15901590
if !slice.is_refs_empty() {
1591-
write!(f, ",{}", slice.remaining_refs())?;
1591+
write!(f, ",{}", slice.size_refs())?;
15921592
}
15931593
Ok(())
15941594
}
@@ -1638,7 +1638,7 @@ fn dump_store_cont_ref(
16381638
if !cs.has_remaining(0, refs) {
16391639
return Ok(());
16401640
}
1641-
cs.try_advance(bits, refs);
1641+
cs.skip_first(bits, refs)?;
16421642
if refs > 1 {
16431643
write!(f, "STREF{refs}CONST")?;
16441644
} else {
@@ -1861,20 +1861,20 @@ fn dump_shldivmod(has_y: bool, quiet: bool) -> Box<FnDumpArgInstr> {
18611861
}
18621862

18631863
fn slice_trim_end(slice: &mut CellSlice<'_>) -> Result<()> {
1864-
let bits = slice.remaining_bits();
1864+
let bits = slice.size_bits();
18651865
if bits == 0 {
18661866
return Ok(());
18671867
}
18681868
let mut trailing = slice_trailing_zeros(slice)?;
18691869
if bits != trailing {
18701870
trailing = trailing.saturating_add(1);
18711871
}
1872-
*slice = slice.get_prefix(bits - trailing, slice.remaining_refs());
1872+
*slice = slice.get_prefix(bits - trailing, slice.size_refs());
18731873
Ok(())
18741874
}
18751875

18761876
fn slice_trailing_zeros(slice: &CellSlice<'_>) -> Result<u16> {
1877-
let mut bits = slice.remaining_bits();
1877+
let mut bits = slice.size_bits();
18781878
if bits == 0 {
18791879
return Ok(0);
18801880
}

0 commit comments

Comments
 (0)