diff --git a/Cargo.lock b/Cargo.lock index ffb61f4d8beb387ba3c756617f5bb3c8ce18ef3b..f6ffbed9cffeaf1e87cd3f789d9737fb3d2b1bf5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1210,7 +1210,7 @@ dependencies = [ ] [[package]] -name = "juno_product_read" +name = "juno_products" version = "0.1.0" dependencies = [ "async-std", diff --git a/Cargo.toml b/Cargo.toml index 3e86bad053f8847c9f10d18117635de1cfa76250..0ed8f64bbfe490464d7a201837f2f9ba133326c3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,5 +33,5 @@ members = [ "juno_samples/edge_detection", "juno_samples/fork_join_tests", "juno_samples/multi_device", - "juno_samples/product_read", + "juno_samples/products", ] diff --git a/juno_samples/product_read/Cargo.toml b/juno_samples/products/Cargo.toml similarity index 88% rename from juno_samples/product_read/Cargo.toml rename to juno_samples/products/Cargo.toml index d466f5550b77e426040842339684a1e8906b22fa..34878a07f2e4fac223075536bf5559b8e1f4b132 100644 --- a/juno_samples/product_read/Cargo.toml +++ b/juno_samples/products/Cargo.toml @@ -1,11 +1,11 @@ [package] -name = "juno_product_read" +name = "juno_products" version = "0.1.0" authors = ["Aaron Councilman <aaronjc4@illinois.edu>"] edition = "2021" [[bin]] -name = "juno_product_read" +name = "juno_products" path = "src/main.rs" [features] diff --git a/juno_samples/product_read/build.rs b/juno_samples/products/build.rs similarity index 81% rename from juno_samples/product_read/build.rs rename to juno_samples/products/build.rs index 2bd5172e661e65e2284a986e2d710cd890d71b90..6d621961581406b08cb5e85f6ff03e63df29b84a 100644 --- a/juno_samples/product_read/build.rs +++ b/juno_samples/products/build.rs @@ -4,7 +4,7 @@ fn main() { #[cfg(not(feature = "cuda"))] { JunoCompiler::new() - .file_in_src("product_read.jn") + .file_in_src("products.jn") .unwrap() .build() .unwrap(); @@ -12,7 +12,7 @@ fn main() { #[cfg(feature = "cuda")] { JunoCompiler::new() - .file_in_src("product_read.jn") + .file_in_src("products.jn") .unwrap() .schedule_in_src("gpu.sch") .unwrap() diff --git a/juno_samples/product_read/src/gpu.sch b/juno_samples/products/src/gpu.sch similarity index 100% rename from juno_samples/product_read/src/gpu.sch rename to juno_samples/products/src/gpu.sch diff --git a/juno_samples/product_read/src/main.rs b/juno_samples/products/src/main.rs similarity index 63% rename from juno_samples/product_read/src/main.rs rename to juno_samples/products/src/main.rs index 5211098ceebd6d7b15871ba0dd73cdbefb993313..b8abb59d5bc3b2cbbb0ef13ec1f44c8d0734e1bb 100644 --- a/juno_samples/product_read/src/main.rs +++ b/juno_samples/products/src/main.rs @@ -2,7 +2,7 @@ use hercules_rt::{runner, HerculesImmBox, HerculesImmBoxTo, HerculesMutBox}; -juno_build::juno!("product_read"); +juno_build::juno!("products"); fn main() { async_std::task::block_on(async { @@ -11,6 +11,11 @@ fn main() { let mut r = runner!(product_read); let res : Vec<i32> = HerculesMutBox::from(r.run(input.to()).await).as_slice().to_vec(); assert_eq!(res, vec![0, 1, 2, 3]); + + // Technically this returns a product of two i32s, but we can interpret that as an array + let mut r = runner!(product_return); + let res : Vec<i32> = HerculesMutBox::from(r.run(42, 17).await).as_slice().to_vec(); + assert_eq!(res, vec![42, 17]); }); } diff --git a/juno_samples/product_read/src/product_read.jn b/juno_samples/products/src/products.jn similarity index 72% rename from juno_samples/product_read/src/product_read.jn rename to juno_samples/products/src/products.jn index 7bf74a105b32099341f299c38898f6f6c08eb467..4f56368ec35463e9d7ac545b7ed08ef288b0178b 100644 --- a/juno_samples/product_read/src/product_read.jn +++ b/juno_samples/products/src/products.jn @@ -7,3 +7,8 @@ fn product_read(input: (i32, i32)[2]) -> i32[4] { result[3] = input[1].1; return result; } + +#[entry] +fn product_return(x: i32, y: i32) -> (i32, i32) { + return (x, y); +}