mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-26 13:29:12 +00:00
Merge branch 'main' into clippy-1.74
This commit is contained in:
commit
aaba3f4d82
320 changed files with 11155 additions and 18862 deletions
|
@ -59,7 +59,9 @@ impl ReplAppMemory for ExpectMemory {
|
|||
roc_str.as_str()
|
||||
} else {
|
||||
let offset = self.deref_usize(addr);
|
||||
let length = self.deref_usize(addr + std::mem::size_of::<usize>());
|
||||
let seamless_slice_mask = usize::MAX >> 1;
|
||||
let length =
|
||||
self.deref_usize(addr + std::mem::size_of::<usize>()) & seamless_slice_mask;
|
||||
let _capacity = self.deref_usize(addr + 2 * std::mem::size_of::<usize>());
|
||||
|
||||
unsafe {
|
||||
|
|
|
@ -435,44 +435,6 @@ pub fn render_expects_in_memory<'a>(
|
|||
)
|
||||
}
|
||||
|
||||
pub fn render_dbgs_in_memory<'a>(
|
||||
writer: &mut impl std::io::Write,
|
||||
arena: &'a Bump,
|
||||
expectations: &mut VecMap<ModuleId, Expectations>,
|
||||
interns: &'a Interns,
|
||||
layout_interner: &GlobalLayoutInterner<'a>,
|
||||
memory: &ExpectMemory,
|
||||
) -> std::io::Result<usize> {
|
||||
let shared_ptr = memory.ptr;
|
||||
|
||||
let frame = ExpectFrame::at_offset(shared_ptr, ExpectSequence::START_OFFSET);
|
||||
let module_id = frame.module_id;
|
||||
|
||||
let data = expectations.get_mut(&module_id).unwrap();
|
||||
let filename = data.path.to_owned();
|
||||
let source = std::fs::read_to_string(&data.path).unwrap();
|
||||
|
||||
let renderer = Renderer::new(
|
||||
arena,
|
||||
interns,
|
||||
RenderTarget::ColorTerminal,
|
||||
module_id,
|
||||
filename,
|
||||
&source,
|
||||
);
|
||||
|
||||
render_dbg_failure(
|
||||
writer,
|
||||
&renderer,
|
||||
arena,
|
||||
expectations,
|
||||
interns,
|
||||
layout_interner,
|
||||
shared_ptr,
|
||||
ExpectSequence::START_OFFSET,
|
||||
)
|
||||
}
|
||||
|
||||
fn split_expect_lookups(subs: &Subs, lookups: &[ExpectLookup]) -> Vec<Symbol> {
|
||||
lookups
|
||||
.iter()
|
||||
|
@ -494,53 +456,6 @@ fn split_expect_lookups(subs: &Subs, lookups: &[ExpectLookup]) -> Vec<Symbol> {
|
|||
.collect()
|
||||
}
|
||||
|
||||
#[allow(clippy::too_many_arguments)]
|
||||
fn render_dbg_failure<'a>(
|
||||
writer: &mut impl std::io::Write,
|
||||
renderer: &Renderer,
|
||||
arena: &'a Bump,
|
||||
expectations: &mut VecMap<ModuleId, Expectations>,
|
||||
interns: &'a Interns,
|
||||
layout_interner: &GlobalLayoutInterner<'a>,
|
||||
start: *const u8,
|
||||
offset: usize,
|
||||
) -> std::io::Result<usize> {
|
||||
// we always run programs as the host
|
||||
let target_info = (&target_lexicon::Triple::host()).into();
|
||||
|
||||
let frame = ExpectFrame::at_offset(start, offset);
|
||||
let module_id = frame.module_id;
|
||||
|
||||
let failure_region = frame.region;
|
||||
let dbg_symbol = unsafe { std::mem::transmute::<_, Symbol>(failure_region) };
|
||||
let expect_region = Some(Region::zero());
|
||||
|
||||
let data = expectations.get_mut(&module_id).unwrap();
|
||||
|
||||
let current = match data.dbgs.get(&dbg_symbol) {
|
||||
None => internal_error!("region {failure_region:?} not in list of dbgs"),
|
||||
Some(current) => current,
|
||||
};
|
||||
let failure_region = current.region;
|
||||
|
||||
let subs = arena.alloc(&mut data.subs);
|
||||
|
||||
let (offset, expressions, _variables) = crate::get_values(
|
||||
target_info,
|
||||
arena,
|
||||
subs,
|
||||
interns,
|
||||
layout_interner,
|
||||
start,
|
||||
frame.start_offset,
|
||||
1,
|
||||
);
|
||||
|
||||
renderer.render_dbg(writer, &expressions, expect_region, failure_region)?;
|
||||
|
||||
Ok(offset)
|
||||
}
|
||||
|
||||
#[allow(clippy::too_many_arguments)]
|
||||
fn render_expect_failure<'a>(
|
||||
writer: &mut impl std::io::Write,
|
||||
|
@ -637,7 +552,6 @@ impl ExpectSequence {
|
|||
match atomic.load(Ordering::Acquire) {
|
||||
0 => std::hint::spin_loop(),
|
||||
1 => break ChildProcessMsg::Expect,
|
||||
2 => break ChildProcessMsg::Dbg,
|
||||
n => internal_error!("invalid atomic value set by the child: {n:#x}"),
|
||||
}
|
||||
}
|
||||
|
@ -655,8 +569,7 @@ impl ExpectSequence {
|
|||
|
||||
pub enum ChildProcessMsg {
|
||||
Expect = 1,
|
||||
Dbg = 2,
|
||||
Terminate = 3,
|
||||
Terminate = 2,
|
||||
}
|
||||
|
||||
struct ExpectFrame {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue