WIP10 - Runtime debug
This commit is contained in:
parent
89d52b310c
commit
29953ab510
|
@ -748,6 +748,9 @@ fn polymorphic_print<'ctx>(
|
||||||
generator: &mut dyn CodeGenerator,
|
generator: &mut dyn CodeGenerator,
|
||||||
fmt: String,
|
fmt: String,
|
||||||
args: Vec<BasicValueEnum<'ctx>>| {
|
args: Vec<BasicValueEnum<'ctx>>| {
|
||||||
|
assert!(!fmt.is_empty());
|
||||||
|
assert_eq!(fmt.as_bytes().last().unwrap(), &0u8);
|
||||||
|
|
||||||
let fn_name = if as_rtio { "rtio_log" } else { "core_log" };
|
let fn_name = if as_rtio { "rtio_log" } else { "core_log" };
|
||||||
let print_fn = ctx.module.get_function(fn_name).unwrap_or_else(|| {
|
let print_fn = ctx.module.get_function(fn_name).unwrap_or_else(|| {
|
||||||
let llvm_pi8 = ctx.ctx.i8_type().ptr_type(AddressSpace::default());
|
let llvm_pi8 = ctx.ctx.i8_type().ptr_type(AddressSpace::default());
|
||||||
|
@ -763,8 +766,15 @@ fn polymorphic_print<'ctx>(
|
||||||
|
|
||||||
println!("printf({fmt}, [{}])", args.iter().map(|arg| arg.to_string()).join(", "));
|
println!("printf({fmt}, [{}])", args.iter().map(|arg| arg.to_string()).join(", "));
|
||||||
|
|
||||||
|
let fmt_val = ctx.gen_string(generator, "hi :)\0");
|
||||||
|
let fmt_val = unsafe { fmt_val.get_field_at_index_unchecked(0) }.into_pointer_value();
|
||||||
|
println!("fmt_val: {}", fmt_val);
|
||||||
|
|
||||||
|
ctx.builder.build_call(print_fn, &[fmt_val.into()], "").unwrap();
|
||||||
|
|
||||||
let fmt = ctx.gen_string(generator, fmt);
|
let fmt = ctx.gen_string(generator, fmt);
|
||||||
let fmt = unsafe { fmt.get_field_at_index_unchecked(0) }.into_pointer_value();
|
let fmt = unsafe { fmt.get_field_at_index_unchecked(0) }.into_pointer_value();
|
||||||
|
println!("fmt: {}", fmt);
|
||||||
|
|
||||||
ctx.builder
|
ctx.builder
|
||||||
.build_call(
|
.build_call(
|
||||||
|
|
Loading…
Reference in New Issue