Skip to content

Commit

Permalink
feat: Add debug.show
Browse files Browse the repository at this point in the history
This could be made better but this is the simplest solution for the
moment

cc #564
  • Loading branch information
Marwes committed Jun 29, 2018
1 parent 53e7f17 commit 0c96272
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 18 deletions.
17 changes: 0 additions & 17 deletions vm/src/api/mac.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,35 +2,27 @@
#[macro_export]
macro_rules! primitive_cast {
(0, $name:expr) => {

$name as fn() -> _
};
(1, $name:expr) => {

$name as fn(_) -> _
};
(2, $name:expr) => {

$name as fn(_, _) -> _
};
(3, $name:expr) => {

$name as fn(_, _, _) -> _
};
(4, $name:expr) => {

$name as fn(_, _, _, _) -> _
};
(5, $name:expr) => {

$name as fn(_, _, _, _, _) -> _
};
(6, $name:expr) => {

$name as fn(_, _, _, _, _, _) -> _
};
(7, $name:expr) => {

$name as fn(_, _, _, _, _, _, _) -> _
};
}
Expand All @@ -51,43 +43,34 @@ macro_rules! primitive_cast {
#[macro_export]
macro_rules! primitive {
(0 $name:expr) => {

named_primitive!(0, stringify!($name), $name)
};
(1 $name:expr) => {

named_primitive!(1, stringify!($name), $name)
};
(2 $name:expr) => {

named_primitive!(2, stringify!($name), $name)
};
(3 $name:expr) => {

named_primitive!(3, stringify!($name), $name)
};
(4 $name:expr) => {

named_primitive!(4, stringify!($name), $name)
};
(5 $name:expr) => {

named_primitive!(5, stringify!($name), $name)
};
(6 $name:expr) => {

named_primitive!(6, stringify!($name), $name)
};
(7 $name:expr) => {

named_primitive!(7, stringify!($name), $name)
};
}

#[macro_export]
macro_rules! named_primitive {
($count:tt, $name:expr, $func:expr) => {

unsafe {
extern "C" fn wrapper(thread: &$crate::thread::Thread) -> $crate::thread::Status {
$crate::api::VmFunction::unpack_and_call(
Expand Down
7 changes: 6 additions & 1 deletion vm/src/debug.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ fn trace(a: Generic<A>) {
println!("{:?}", a);
}

fn show(a: Generic<A>) -> String {
format!("{:?}", a)
}

mod std {
pub use debug;
}
Expand All @@ -17,7 +21,8 @@ pub fn load(vm: &Thread) -> Result<ExternModule> {
ExternModule::new(
vm,
record!{
trace => primitive!(1 std::debug::trace)
trace => primitive!(1 std::debug::trace),
show => primitive!(1 std::debug::show)
},
)
}

0 comments on commit 0c96272

Please sign in to comment.