diff --git a/Cargo.lock b/Cargo.lock index d2f5114f..9ff66b17 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -106,7 +106,7 @@ checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", ] [[package]] @@ -174,7 +174,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", ] [[package]] @@ -274,7 +274,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", ] [[package]] @@ -913,6 +913,8 @@ dependencies = [ "linked_list_allocator", "ms_hostcall", "ms_std_proc_macro", + "serde", + "serde_json", "spin 0.9.8", "thiserror-no-std", "unwinding", @@ -924,7 +926,7 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", ] [[package]] @@ -971,7 +973,7 @@ checksum = "5b4123e70df5fe0bb370cff166ae453b9c5324a2cfc932c0f7e55498147a0475" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", ] [[package]] @@ -1052,7 +1054,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", ] [[package]] @@ -1081,9 +1083,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.76" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] @@ -1214,31 +1216,32 @@ checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "serde" -version = "1.0.195" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.195" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", ] [[package]] name = "serde_json" -version = "1.0.111" +version = "1.0.135" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] @@ -1366,9 +1369,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", @@ -1413,7 +1416,7 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", ] [[package]] @@ -1460,7 +1463,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", ] [[package]] @@ -1660,7 +1663,7 @@ dependencies = [ "anyhow", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", "wasmtime-component-util", "wasmtime-wit-bindgen", "wit-parser", @@ -1758,7 +1761,7 @@ checksum = "de5a9bc4f44ceeb168e9e8e3be4e0b4beb9095b468479663a9e24c667e36826f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", ] [[package]] @@ -2034,5 +2037,5 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.96", ] diff --git a/common_service/fatfs/Cargo.lock b/common_service/fatfs/Cargo.lock index 03c6fff0..4b992e67 100644 --- a/common_service/fatfs/Cargo.lock +++ b/common_service/fatfs/Cargo.lock @@ -174,6 +174,12 @@ dependencies = [ "cc", ] +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + [[package]] name = "js-sys" version = "0.3.66" @@ -214,6 +220,12 @@ version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + [[package]] name = "ms_hostcall" version = "0.1.0" @@ -232,6 +244,8 @@ dependencies = [ "linked_list_allocator", "ms_hostcall", "ms_std_proc_macro", + "serde", + "serde_json", "spin", "thiserror-no-std", ] @@ -242,7 +256,7 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 1.0.109", ] [[package]] @@ -262,18 +276,18 @@ checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -287,6 +301,12 @@ dependencies = [ "semver", ] +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + [[package]] name = "scopeguard" version = "1.2.0" @@ -299,6 +319,38 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +[[package]] +name = "serde" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "serde_json" +version = "1.0.135" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + [[package]] name = "spin" version = "0.9.8" @@ -336,9 +388,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", @@ -392,7 +444,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.96", "wasm-bindgen-shared", ] @@ -414,7 +466,7 @@ checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.96", "wasm-bindgen-backend", "wasm-bindgen-shared", ] diff --git a/common_service/fdtab/Cargo.lock b/common_service/fdtab/Cargo.lock index 4cfc27b8..6a3f511f 100644 --- a/common_service/fdtab/Cargo.lock +++ b/common_service/fdtab/Cargo.lock @@ -79,6 +79,12 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + [[package]] name = "libc" version = "0.2.150" @@ -104,6 +110,12 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + [[package]] name = "ms_hostcall" version = "0.1.0" @@ -122,6 +134,8 @@ dependencies = [ "linked_list_allocator", "ms_hostcall", "ms_std_proc_macro", + "serde", + "serde_json", "spin", "thiserror-no-std", "unwinding", @@ -133,23 +147,23 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 1.0.109", ] [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -163,6 +177,12 @@ dependencies = [ "semver", ] +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + [[package]] name = "scopeguard" version = "1.2.0" @@ -175,6 +195,38 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +[[package]] +name = "serde" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "serde_json" +version = "1.0.135" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + [[package]] name = "spin" version = "0.9.8" @@ -212,9 +264,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", diff --git a/common_service/mm/Cargo.lock b/common_service/mm/Cargo.lock index aa6112e8..5cf6b275 100644 --- a/common_service/mm/Cargo.lock +++ b/common_service/mm/Cargo.lock @@ -85,6 +85,12 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + [[package]] name = "lazy_static" version = "1.4.0" @@ -119,6 +125,12 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + [[package]] name = "mm" version = "0.1.0" @@ -150,6 +162,8 @@ dependencies = [ "linked_list_allocator", "ms_hostcall", "ms_std_proc_macro", + "serde", + "serde_json", "spin 0.9.8", "thiserror-no-std", ] @@ -160,7 +174,7 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 1.0.109", ] [[package]] @@ -171,18 +185,18 @@ checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -196,6 +210,12 @@ dependencies = [ "semver", ] +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + [[package]] name = "scopeguard" version = "1.2.0" @@ -208,6 +228,38 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +[[package]] +name = "serde" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "serde_json" +version = "1.0.135" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + [[package]] name = "spin" version = "0.5.2" @@ -251,9 +303,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", @@ -309,5 +361,5 @@ checksum = "dd7e48ccf166952882ca8bd778a43502c64f33bf94c12ebe2a7f08e5a0f6689f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.96", ] diff --git a/common_service/mm/src/faas_buffer/mod.rs b/common_service/mm/src/faas_buffer/mod.rs index 54f9126c..64b35848 100644 --- a/common_service/mm/src/faas_buffer/mod.rs +++ b/common_service/mm/src/faas_buffer/mod.rs @@ -37,8 +37,12 @@ pub fn buffer_alloc(slot: &str, l: Layout, fingerprint: u64) -> MMResult #[no_mangle] pub fn access_buffer(slot: &str) -> Option<(usize, u64)> { - // *RAW_P.lock().take() - BUFFER_REGISTER.lock().get(slot).take().copied() + let mut register = BUFFER_REGISTER.lock(); + // ms_std::println!("buffer register: "); + // for (k, v) in register.iter() { + // ms_std::println!(" {}: {:?}", k, v); + // } + register.remove(slot) } #[no_mangle] diff --git a/common_service/mmap_file_backend/Cargo.lock b/common_service/mmap_file_backend/Cargo.lock index 1031e97b..b9731859 100644 --- a/common_service/mmap_file_backend/Cargo.lock +++ b/common_service/mmap_file_backend/Cargo.lock @@ -34,7 +34,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.39", + "syn 2.0.96", ] [[package]] @@ -128,6 +128,12 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + [[package]] name = "lazy_static" version = "1.4.0" @@ -215,6 +221,8 @@ dependencies = [ "linked_list_allocator", "ms_hostcall", "ms_std_proc_macro", + "serde", + "serde_json", "spin", "thiserror-no-std", ] @@ -225,7 +233,7 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 1.0.109", ] [[package]] @@ -257,18 +265,18 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -317,6 +325,12 @@ dependencies = [ "semver", ] +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + [[package]] name = "scopeguard" version = "1.2.0" @@ -329,6 +343,38 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +[[package]] +name = "serde" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "serde_json" +version = "1.0.135" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + [[package]] name = "shlex" version = "1.2.0" @@ -372,9 +418,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", @@ -398,7 +444,7 @@ checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.96", ] [[package]] diff --git a/common_service/ruxfdtab/Cargo.lock b/common_service/ruxfdtab/Cargo.lock index 03f2c4ad..aa7f94b2 100644 --- a/common_service/ruxfdtab/Cargo.lock +++ b/common_service/ruxfdtab/Cargo.lock @@ -164,7 +164,7 @@ checksum = "6af24c4862260a825484470f5526a91ad1031e04ab899be62478241231f62b46" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.87", ] [[package]] @@ -183,7 +183,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.77", + "syn 2.0.87", ] [[package]] @@ -330,6 +330,12 @@ dependencies = [ "hashbrown", ] +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + [[package]] name = "kernel_guard" version = "0.1.1" @@ -418,6 +424,8 @@ dependencies = [ "linked_list_allocator", "ms_hostcall", "ms_std_proc_macro", + "serde", + "serde_json", "spin", "thiserror-no-std", ] @@ -428,7 +436,7 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 1.0.109", ] [[package]] @@ -502,7 +510,7 @@ source = "git+https://github.com/anti-entropy123/ruxos/#69217283ca94c10d6b084be7 dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.87", ] [[package]] @@ -697,6 +705,12 @@ dependencies = [ "ruxhal", ] +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + [[package]] name = "sbi-rt" version = "0.0.3" @@ -741,22 +755,34 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.210" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.210" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.87", +] + +[[package]] +name = "serde_json" +version = "1.0.135" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", ] [[package]] @@ -811,9 +837,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.77" +version = "2.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" +checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" dependencies = [ "proc-macro2", "quote", diff --git a/common_service/signal/Cargo.lock b/common_service/signal/Cargo.lock index ef6ace57..e75563ad 100644 --- a/common_service/signal/Cargo.lock +++ b/common_service/signal/Cargo.lock @@ -51,7 +51,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -73,6 +73,12 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + [[package]] name = "linked_list_allocator" version = "0.10.5" @@ -92,6 +98,12 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + [[package]] name = "ms_hostcall" version = "0.1.0" @@ -110,6 +122,8 @@ dependencies = [ "linked_list_allocator", "ms_hostcall", "ms_std_proc_macro", + "serde", + "serde_json", "spin", "thiserror-no-std", ] @@ -120,7 +134,7 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 1.0.109", ] [[package]] @@ -159,6 +173,12 @@ dependencies = [ "semver", ] +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + [[package]] name = "scopeguard" version = "1.2.0" @@ -171,6 +191,38 @@ version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +[[package]] +name = "serde" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "serde_json" +version = "1.0.135" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + [[package]] name = "shlex" version = "1.3.0" @@ -223,9 +275,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.79" +version = "2.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" +checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" dependencies = [ "proc-macro2", "quote", diff --git a/common_service/socket/Cargo.lock b/common_service/socket/Cargo.lock index 3005eeec..b88d7d9e 100644 --- a/common_service/socket/Cargo.lock +++ b/common_service/socket/Cargo.lock @@ -58,7 +58,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.96", ] [[package]] @@ -113,6 +113,12 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + [[package]] name = "lazy_static" version = "1.4.0" @@ -156,6 +162,12 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ca88d725a0a943b096803bd34e73a4437208b6077654cc4ecb2947a5f91618d" +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + [[package]] name = "ms_hostcall" version = "0.1.0" @@ -174,6 +186,8 @@ dependencies = [ "linked_list_allocator", "ms_hostcall", "ms_std_proc_macro", + "serde", + "serde_json", "spin", "thiserror-no-std", ] @@ -184,7 +198,7 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 1.0.109", ] [[package]] @@ -219,18 +233,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -274,6 +288,12 @@ dependencies = [ "semver", ] +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + [[package]] name = "scopeguard" version = "1.2.0" @@ -286,6 +306,38 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +[[package]] +name = "serde" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "serde_json" +version = "1.0.135" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + [[package]] name = "smoltcp" version = "0.11.0" @@ -354,9 +406,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", @@ -380,7 +432,7 @@ checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.96", ] [[package]] diff --git a/common_service/socket/Cargo.toml b/common_service/socket/Cargo.toml index ead8d3db..9ab6e02f 100644 --- a/common_service/socket/Cargo.toml +++ b/common_service/socket/Cargo.toml @@ -9,7 +9,7 @@ edition = "2021" crate-type = ["dylib"] [dependencies] -ms_std = { path = "../../ms_std", default-features = false, features = [] } +ms_std = { path = "../../ms_std", features = [] } ms_hostcall = { path = "../../ms_hostcall", features = ["socket", "fatfs"] } log = "0.4.20" @@ -33,4 +33,5 @@ smoltcp = { version = "0.11.0", default-features = false, features = [ [features] log = [] mpk = ["ms_std/mpk"] + default = [] diff --git a/isol_config/pass_complex_args.json b/isol_config/pass_complex_args.json index 0457e2e9..351edd2c 100644 --- a/isol_config/pass_complex_args.json +++ b/isol_config/pass_complex_args.json @@ -4,6 +4,10 @@ "fdtab", "libfdtab.so" ], + [ + "fatfs", + "libfatfs.so" + ], [ "stdio", "libstdio.so" diff --git a/justfile b/justfile index 4c4132a8..94b39ce9 100644 --- a/justfile +++ b/justfile @@ -26,6 +26,23 @@ release_flag := if enable_release == "1" { "--release" } else { "" } +pass_args: + cargo build --manifest-path user/func_a/Cargo.toml && \ + cargo build --manifest-path user/func_b/Cargo.toml + +map_reduce: + cargo build --manifest-path user/mapper/Cargo.toml && \ + cargo build --manifest-path user/reducer/Cargo.toml + +parallel_sort: + for func in file_reader sorter splitter merger; do \ + if ! cargo build --manifest-path user/$func/Cargo.toml; then \ + echo "build $func failed."; \ + exit 1; \ + fi; \ + done + + all_libos: ./scripts/build_all_common{{ if enable_mpk == "1" { "_mpk" } else { "" } }}.sh {{ release_flag }} @@ -33,6 +50,11 @@ all_rust: just all_libos ./scripts/build_user.sh {{ release_flag }} {{ cmd_flag }} +run_rust_test: + just all_libos + just all_rust + ./scripts/run_tests.sh {{ cmd_flag }} + cc_flags_p1 := "-Wl,--gc-sections -nostdlib -Wl,--whole-archive" cc_flags_p2 := "-Wl,--no-whole-archive -shared" target := "x86_64-unknown-none" @@ -99,10 +121,7 @@ c_checker_so: {{cc_flags_p2}} \ -o target/{{target}}/debug/libwasmtime_checker.so -run_rust_test: - just all_libos - just all_rust - ./scripts/run_tests.sh {{ cmd_flag }} + wasmtime_parallel_sort: c_sorter_so c_spliter_so c_merger_so c_checker_so @echo "make symbol link: wasmtime_parallel_sort" diff --git a/ms_std/Cargo.toml b/ms_std/Cargo.toml index 19d91793..9d8ea25b 100644 --- a/ms_std/Cargo.toml +++ b/ms_std/Cargo.toml @@ -7,12 +7,6 @@ edition = "2021" [lib] crate-type = ["rlib"] -[features] -panic_def = [] -alloc_def = [] -mpk = ["ms_hostcall/enable_mpk"] - -default = [] [dependencies] ms_hostcall = { workspace = true, features = [ @@ -33,3 +27,18 @@ linked_list_allocator = "0.10.5" spin = "0.9.8" thiserror-no-std = "2.0.2" heapless = "0.8" +serde = { version = "1.0.217", default-features = false, features = [ + # "derive", + # "serde_derive", +] } +serde_json = { version = "1.0.135", default-features = false, features = [ + "alloc", +] } + +[features] +panic_def = [] +alloc_def = [] +mpk = ["ms_hostcall/enable_mpk"] +file-based = [] + +default = [] diff --git a/ms_std/src/agent.rs b/ms_std/src/agent.rs index 0ba728ae..99ae797c 100644 --- a/ms_std/src/agent.rs +++ b/ms_std/src/agent.rs @@ -1,13 +1,9 @@ -use core::{alloc::Layout, borrow::Borrow, fmt::Display, mem::ManuallyDrop}; +use core::fmt::Display; use alloc::{ - boxed::Box, format, string::{String, ToString}, }; -use ms_hostcall::Verify; - -use crate::{libos::libos, println}; pub type FaaSFuncResult = Result, FaaSFuncError>; @@ -34,123 +30,276 @@ impl FaaSFuncError { } } -#[derive(Debug)] -pub struct DataBuffer { - inner: ManuallyDrop>, +#[cfg(not(feature = "file-based"))] +mod refer_based_impl { + use core::{alloc::Layout, borrow::Borrow, mem::ManuallyDrop}; - used: bool, -} + use alloc::{boxed::Box, string::String}; + use ms_hostcall::Verify; -impl DataBuffer -where - T: Verify, -{ - pub fn new() -> Self - where - T: Default, - { - Self::with_slot(String::new()) + use crate::{libos::libos, println}; + + #[derive(Debug)] + pub struct DataBuffer { + inner: ManuallyDrop>, + + used: bool, } - pub fn with_slot(slot: String) -> Self + impl DataBuffer where - T: Default, + T: Verify, { - let l: Layout = Layout::new::(); + pub fn new() -> Self + where + T: Default, + { + Self::with_slot(String::new()) + } + + pub fn with_slot(slot: String) -> Self + where + T: Default, + { + let l: Layout = Layout::new::(); + + let p = if l.size() == 0 { + unsafe { + alloc::alloc::alloc(Layout::from_size_align(4, 4).unwrap()) as usize as *mut T + } + } else { + let fingerprint = T::__fingerprint(); + + libos!(buffer_alloc(&slot, l, fingerprint)).expect("alloc failed.") as *mut T - let p = if l.size() == 0 { - unsafe { - alloc::alloc::alloc(Layout::from_size_align(4, 4).unwrap()) as usize as *mut T + // let val = T::default(); + // println!("will write addr=0x{:x}", addr as usize); + // unsafe { core::ptr::write(addr, val) }; + }; + + let inner = unsafe { Box::from_raw(p) }; + + Self { + inner: ManuallyDrop::new(inner), + used: false, } - } else { - let fingerprint = T::__fingerprint(); - let addr = - libos!(buffer_alloc(&slot, l, fingerprint)).expect("alloc failed.") as *mut T; + } - // let val = T::default(); - // println!("will write addr=0x{:x}", addr as usize); - // unsafe { core::ptr::write(addr, val) }; + pub fn from_buffer() -> Option { + Self::from_buffer_slot(String::new()) + } - addr - }; + pub fn from_buffer_slot(slot: String) -> Option { + let buffer_meta: Option<(usize, u64)> = libos!(access_buffer(&slot)); - let inner = unsafe { Box::from_raw(p) }; + buffer_meta.map(|(raw_ptr, fingerprint)| { + if fingerprint != T::__fingerprint() { + println!("wrong data type, {}, {}", fingerprint, T::__fingerprint()); + panic!(""); + }; - Self { - inner: ManuallyDrop::new(inner), - used: false, + let inner = unsafe { Box::from_raw(raw_ptr as *mut T) }; + + Self { + inner: ManuallyDrop::new(inner), + used: false, + } + }) } } - pub fn from_buffer() -> Option { - Self::from_buffer_slot(String::new()) + impl Default for DataBuffer + where + T: Default + Verify, + { + fn default() -> DataBuffer { + Self::new() + } } - pub fn from_buffer_slot(slot: String) -> Option { - let buffer_meta: Option<(usize, u64)> = libos!(access_buffer(&slot)); + impl core::ops::Deref for DataBuffer + where + T: Verify, + { + type Target = T; - buffer_meta.map(|(raw_ptr, fingerprint)| { - if fingerprint != T::__fingerprint() { - println!("wrong data type, {}, {}", fingerprint, T::__fingerprint()); - panic!(""); - }; + fn deref(&self) -> &Self::Target { + self.inner.borrow() + } + } + + impl core::ops::DerefMut for DataBuffer + where + T: Verify, + { + fn deref_mut(&mut self) -> &mut Self::Target { + self.inner.as_mut() + } + } + + impl From for DataBuffer + where + T: Default + Verify, + { + fn from(value: T) -> Self { + let mut t = DataBuffer::::default(); + *t = value; + t + } + } + + impl Drop for DataBuffer { + fn drop(&mut self) { + if self.used { + let ptr = Box::into_raw(unsafe { ManuallyDrop::take(&mut self.inner) }); + // println!("drop DataBuffer val: 0x{:x}", ptr as usize); + libos!(buffer_dealloc(ptr as usize, Layout::new::())); + } + } + } +} + +#[cfg(feature = "file-based")] +mod file_based_impl { + use alloc::{format, string::String}; + use core::{borrow::Borrow, fmt::Write}; + use ms_hostcall::Verify; + use serde::{Deserialize, Serialize}; + + use crate::fs::File; + + #[derive(Debug)] + pub struct DataBuffer + where + T: Serialize, + { + inner: T, + slot: String, + used: bool, + } - let inner = unsafe { Box::from_raw(raw_ptr as *mut T) }; + impl DataBuffer + where + T: Verify + Serialize + for<'a> Deserialize<'a> + Default, + { + pub fn new() -> Self + where + T: Default, + { + Self::with_slot(String::new()) + } + pub fn with_slot(slot: String) -> Self + where + T: Default, + { Self { - inner: ManuallyDrop::new(inner), + inner: T::default(), + slot, used: false, } - }) + } + + pub fn from_buffer() -> Option { + Self::from_buffer_slot(String::new()) + } + + pub fn from_buffer_slot(slot: String) -> Option + where + T: Default, + { + use alloc::vec::Vec; + + use crate::io::Read; + + let mut content = if let Ok(file) = File::open(&format!("{}.imd", slot)) { + file + } else { + return None; + }; + + let mut result = Self { + inner: Default::default(), + slot: slot.clone(), + used: true, + }; + + let mut buffer = Vec::new(); + content + .read_to_end(&mut buffer) + .expect("read imd file failed."); + result.inner = + serde_json::from_slice(&buffer).expect(&format!("deserialize {} failed.", &slot)); + + Some(result) + } } -} -impl Default for DataBuffer -where - T: Default + Verify, -{ - fn default() -> DataBuffer { - Self::new() + impl Default for DataBuffer + where + T: Default + Verify + Serialize + for<'a> Deserialize<'a>, + { + fn default() -> DataBuffer { + Self::new() + } } -} -impl core::ops::Deref for DataBuffer -where - T: Verify, -{ - type Target = T; + impl core::ops::Deref for DataBuffer + where + T: Verify + Serialize, + { + type Target = T; - fn deref(&self) -> &Self::Target { - self.inner.borrow() + fn deref(&self) -> &Self::Target { + self.inner.borrow() + } } -} -impl core::ops::DerefMut for DataBuffer -where - T: Verify, -{ - fn deref_mut(&mut self) -> &mut Self::Target { - self.inner.as_mut() + impl core::ops::DerefMut for DataBuffer + where + T: Verify + Serialize, + { + fn deref_mut(&mut self) -> &mut Self::Target { + #[cfg(feature = "refer-based")] + { + self.inner.as_mut() + } + #[cfg(feature = "file-based")] + { + &mut self.inner + } + } } -} -impl From for DataBuffer -where - T: Default + Verify, -{ - fn from(value: T) -> Self { - let mut t = DataBuffer::::default(); - *t = value; - t + impl From for DataBuffer + where + T: Default + Verify + Serialize + for<'a> Deserialize<'a>, + { + fn from(value: T) -> Self { + let mut t = DataBuffer::::default(); + *t = value; + t + } } -} -impl Drop for DataBuffer { - fn drop(&mut self) { - if self.used { - let ptr = Box::into_raw(unsafe { ManuallyDrop::take(&mut self.inner) }); - // println!("drop DataBuffer val: 0x{:x}", ptr as usize); - libos!(buffer_dealloc(ptr as usize, Layout::new::())); + impl Drop for DataBuffer + where + T: Serialize, + { + fn drop(&mut self) { + if !self.used { + let mut content = + File::create(&format!("{}.imd", &self.slot)).expect("create imd file failed."); + let data_str = serde_json::to_string(&self.inner).expect("serialize failed."); + + content.write_str(&data_str).expect("write failed."); + } } } } + +#[cfg(not(feature = "file-based"))] +pub use refer_based_impl::*; + +#[cfg(feature = "file-based")] +pub use file_based_impl::*; diff --git a/scripts/build_all_common.sh b/scripts/build_all_common.sh index edad3ca8..4e691079 100755 --- a/scripts/build_all_common.sh +++ b/scripts/build_all_common.sh @@ -2,4 +2,10 @@ mkdir -p target/debug/ && mkdir -p target/release/ -ls common_service | xargs -n 1 printf "./scripts/build_common.sh %s $1\n" | bash \ No newline at end of file +# ls common_service | xargs -n 1 printf "./scripts/build_common.sh %s $1\n" | bash + +# shellcheck disable=SC2045 +for module in $(ls common_service); do + echo "build $module." + ./scripts/build_common.sh "$module" "$1" +done diff --git a/scripts/gen_data.py b/scripts/gen_data.py index 563304ad..a846e406 100755 --- a/scripts/gen_data.py +++ b/scripts/gen_data.py @@ -38,4 +38,4 @@ def gen_parallel_sort(file_num: int, total_size: int): f.write('1') if __name__ == "__main__": - gen_parallel_sort(1, 50 * 1024 * 1024) + gen_parallel_sort(3, 25 * 1024 * 1024) diff --git a/user/array_sum/Cargo.lock b/user/array_sum/Cargo.lock index 2e73f5fb..233d39e5 100644 --- a/user/array_sum/Cargo.lock +++ b/user/array_sum/Cargo.lock @@ -73,6 +73,12 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + [[package]] name = "linked_list_allocator" version = "0.10.5" @@ -92,6 +98,12 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + [[package]] name = "ms_hostcall" version = "0.1.0" @@ -110,6 +122,8 @@ dependencies = [ "linked_list_allocator", "ms_hostcall", "ms_std_proc_macro", + "serde", + "serde_json", "spin", "thiserror-no-std", ] @@ -120,23 +134,23 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 1.0.109", ] [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -150,6 +164,12 @@ dependencies = [ "semver", ] +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + [[package]] name = "scopeguard" version = "1.2.0" @@ -162,6 +182,38 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +[[package]] +name = "serde" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "serde_json" +version = "1.0.135" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + [[package]] name = "spin" version = "0.9.8" @@ -199,9 +251,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", diff --git a/user/checker/Cargo.lock b/user/checker/Cargo.lock index 649730e9..f1f84cd2 100644 --- a/user/checker/Cargo.lock +++ b/user/checker/Cargo.lock @@ -79,6 +79,12 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + [[package]] name = "libc" version = "0.2.150" @@ -104,6 +110,12 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + [[package]] name = "ms_hostcall" version = "0.1.0" @@ -122,6 +134,8 @@ dependencies = [ "linked_list_allocator", "ms_hostcall", "ms_std_proc_macro", + "serde", + "serde_json", "spin", "thiserror-no-std", "unwinding", @@ -133,23 +147,23 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 1.0.109", ] [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -163,6 +177,12 @@ dependencies = [ "semver", ] +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + [[package]] name = "scopeguard" version = "1.2.0" @@ -175,6 +195,38 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +[[package]] +name = "serde" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "serde_json" +version = "1.0.135" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + [[package]] name = "spin" version = "0.9.8" @@ -212,9 +264,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", diff --git a/user/file_reader/Cargo.lock b/user/file_reader/Cargo.lock index 166bb459..dcc163fe 100644 --- a/user/file_reader/Cargo.lock +++ b/user/file_reader/Cargo.lock @@ -53,6 +53,7 @@ dependencies = [ "ms_hostcall", "ms_std", "ms_std_proc_macro", + "serde", ] [[package]] @@ -74,6 +75,12 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + [[package]] name = "linked_list_allocator" version = "0.10.5" @@ -93,6 +100,12 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + [[package]] name = "ms_hostcall" version = "0.1.0" @@ -111,6 +124,8 @@ dependencies = [ "linked_list_allocator", "ms_hostcall", "ms_std_proc_macro", + "serde", + "serde_json", "spin", "thiserror-no-std", ] @@ -121,23 +136,23 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 1.0.109", ] [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -151,6 +166,12 @@ dependencies = [ "semver", ] +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + [[package]] name = "scopeguard" version = "1.2.0" @@ -163,6 +184,38 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +[[package]] +name = "serde" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "serde_json" +version = "1.0.135" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + [[package]] name = "spin" version = "0.9.8" @@ -200,9 +253,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", diff --git a/user/file_reader/Cargo.toml b/user/file_reader/Cargo.toml index 9f2d6239..e16930ba 100644 --- a/user/file_reader/Cargo.toml +++ b/user/file_reader/Cargo.toml @@ -13,6 +13,7 @@ ms_std = { path = "../../ms_std", features = ["alloc_def", "panic_def"] } ms_hostcall = { path = "../../ms_hostcall" } ms_std_proc_macro = { path = "../../ms_std_proc_macro" } heapless = "0.8.0" +serde = { version = "1.0.217", default-features = false, features = ["derive"] } [features] mpk = ["ms_std/mpk"] diff --git a/user/file_reader/src/lib.rs b/user/file_reader/src/lib.rs index 5fd63f06..9875fb45 100644 --- a/user/file_reader/src/lib.rs +++ b/user/file_reader/src/lib.rs @@ -10,9 +10,10 @@ use ms_std::{ time::{SystemTime, UNIX_EPOCH}, }; use ms_std_proc_macro::FaasData; +use serde::{Deserialize, Serialize}; // use ms_std_proc_macro::FaasData; -#[derive(Default, FaasData)] +#[derive(Default, FaasData, Serialize, Deserialize)] struct VecArg { #[cfg(feature = "pkey_per_func")] content: heapless::String<{ 110 * 1024 * 1024 }>, diff --git a/user/func_a/Cargo.lock b/user/func_a/Cargo.lock index 13ecb434..378d0b9a 100644 --- a/user/func_a/Cargo.lock +++ b/user/func_a/Cargo.lock @@ -52,6 +52,7 @@ dependencies = [ "ms_hostcall", "ms_std", "ms_std_proc_macro", + "serde", ] [[package]] @@ -73,6 +74,12 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + [[package]] name = "linked_list_allocator" version = "0.10.5" @@ -92,6 +99,12 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + [[package]] name = "ms_hostcall" version = "0.1.0" @@ -110,6 +123,8 @@ dependencies = [ "linked_list_allocator", "ms_hostcall", "ms_std_proc_macro", + "serde", + "serde_json", "spin", "thiserror-no-std", ] @@ -120,23 +135,23 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 1.0.109", ] [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -150,6 +165,12 @@ dependencies = [ "semver", ] +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + [[package]] name = "scopeguard" version = "1.2.0" @@ -162,6 +183,38 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +[[package]] +name = "serde" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "serde_json" +version = "1.0.135" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + [[package]] name = "spin" version = "0.9.8" @@ -199,9 +252,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", diff --git a/user/func_a/Cargo.toml b/user/func_a/Cargo.toml index dceb29fa..6777705a 100644 --- a/user/func_a/Cargo.toml +++ b/user/func_a/Cargo.toml @@ -12,9 +12,11 @@ crate-type = ["dylib"] ms_std = { path = "../../ms_std", features = ["alloc_def", "panic_def"] } ms_hostcall = { path = "../../ms_hostcall" } ms_std_proc_macro = { path = "../../ms_std_proc_macro" } +serde = { version = "1.0.217", default-features = false, features = ["derive"] } [features] mpk = ["ms_std/mpk"] pkey_per_func = ["mpk"] -default = [] \ No newline at end of file + +default = [] diff --git a/user/func_a/src/lib.rs b/user/func_a/src/lib.rs index 329f21c2..34a291eb 100644 --- a/user/func_a/src/lib.rs +++ b/user/func_a/src/lib.rs @@ -2,7 +2,7 @@ extern crate alloc; -use alloc::borrow::ToOwned; +use alloc::{borrow::ToOwned, vec::Vec}; use ms_std::{ agent::{DataBuffer, FaaSFuncResult as Result}, println, @@ -13,15 +13,15 @@ use ms_std_proc_macro::FaasData; // const DATA_SIZE: usize = 1024 * 1024 * 256 / 8; const DATA_SIZE: usize = 1024 * 1024 * 16 / 8; -#[derive(FaasData)] +#[derive(FaasData, serde::Serialize, serde::Deserialize)] struct VecArg { - data: [u64; DATA_SIZE], + data: Vec, } impl Default for VecArg { fn default() -> Self { Self { - data: [0; DATA_SIZE], + data: Vec::with_capacity(DATA_SIZE), } } } @@ -35,17 +35,17 @@ pub fn main() -> Result<()> { *val = (idx % (u64::MAX - 1) as usize) as u64 } - let register_start = SystemTime::now().duration_since(UNIX_EPOCH).as_nanos(); - let result = DataBuffer::::from_buffer_slot("Conference".to_owned()); + // let register_start = SystemTime::now().duration_since(UNIX_EPOCH).as_nanos(); + // let result = DataBuffer::::from_buffer_slot("Conference".to_owned()); - if let Some(buffer) = result { - for i in 0..buffer.data.len() { - let _ = unsafe { core::ptr::read_volatile((&buffer.data[i]) as *const u64) }; - } - } - let access_end2 = SystemTime::now().duration_since(UNIX_EPOCH).as_nanos(); + // if let Some(buffer) = result { + // for i in 0..buffer.data.len() { + // let _ = unsafe { core::ptr::read_volatile((&buffer.data[i]) as *const u64) }; + // } + // } + // let access_end2 = SystemTime::now().duration_since(UNIX_EPOCH).as_nanos(); - println!("phase34_dur={}", access_end2 - register_start); + // println!("phase34_dur={}", access_end2 - register_start); Ok(().into()) } diff --git a/user/func_b/Cargo.lock b/user/func_b/Cargo.lock index 18829295..0af4b19e 100644 --- a/user/func_b/Cargo.lock +++ b/user/func_b/Cargo.lock @@ -52,6 +52,7 @@ dependencies = [ "ms_hostcall", "ms_std", "ms_std_proc_macro", + "serde", ] [[package]] @@ -73,6 +74,12 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + [[package]] name = "linked_list_allocator" version = "0.10.5" @@ -92,6 +99,12 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + [[package]] name = "ms_hostcall" version = "0.1.0" @@ -110,6 +123,8 @@ dependencies = [ "linked_list_allocator", "ms_hostcall", "ms_std_proc_macro", + "serde", + "serde_json", "spin", "thiserror-no-std", ] @@ -120,23 +135,23 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 1.0.109", ] [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -150,6 +165,12 @@ dependencies = [ "semver", ] +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + [[package]] name = "scopeguard" version = "1.2.0" @@ -162,6 +183,38 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +[[package]] +name = "serde" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "serde_json" +version = "1.0.135" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + [[package]] name = "spin" version = "0.9.8" @@ -199,9 +252,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", diff --git a/user/func_b/Cargo.toml b/user/func_b/Cargo.toml index f5dd3a30..2db2e2ce 100644 --- a/user/func_b/Cargo.toml +++ b/user/func_b/Cargo.toml @@ -12,8 +12,9 @@ crate-type = ["dylib"] ms_std = { path = "../../ms_std", features = ["alloc_def", "panic_def"] } ms_hostcall = { path = "../../ms_hostcall" } ms_std_proc_macro = { path = "../../ms_std_proc_macro" } +serde = { version = "1.0.217", default-features = false, features = ["derive"] } [features] mpk = ["ms_std/mpk"] pkey_per_func = ["mpk"] -default = [] \ No newline at end of file +default = [] diff --git a/user/func_b/src/lib.rs b/user/func_b/src/lib.rs index 9fb73add..f6646b9e 100644 --- a/user/func_b/src/lib.rs +++ b/user/func_b/src/lib.rs @@ -2,7 +2,7 @@ extern crate alloc; -use alloc::borrow::ToOwned; +use alloc::{borrow::ToOwned, vec::Vec}; use ms_std::{ agent::{DataBuffer, FaaSFuncResult as Result}, println, @@ -12,15 +12,15 @@ use ms_std_proc_macro::FaasData; const DATA_SIZE: usize = 1024 * 1024 * 16 / 8; -#[derive(FaasData)] -pub struct MyComplexData { - data: [u64; DATA_SIZE], +#[derive(FaasData, serde::Serialize, serde::Deserialize)] +struct MyComplexData { + data: Vec, } impl Default for MyComplexData { fn default() -> Self { Self { - data: [0; DATA_SIZE], + data: Vec::with_capacity(DATA_SIZE), } } } diff --git a/user/hello_world/Cargo.lock b/user/hello_world/Cargo.lock index 719a4934..93f90495 100644 --- a/user/hello_world/Cargo.lock +++ b/user/hello_world/Cargo.lock @@ -73,6 +73,12 @@ dependencies = [ "ms_std", ] +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + [[package]] name = "linked_list_allocator" version = "0.10.5" @@ -92,6 +98,12 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + [[package]] name = "ms_hostcall" version = "0.1.0" @@ -110,6 +122,8 @@ dependencies = [ "linked_list_allocator", "ms_hostcall", "ms_std_proc_macro", + "serde", + "serde_json", "spin", "thiserror-no-std", ] @@ -120,23 +134,23 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 1.0.109", ] [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -150,6 +164,12 @@ dependencies = [ "semver", ] +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + [[package]] name = "scopeguard" version = "1.2.0" @@ -162,6 +182,38 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +[[package]] +name = "serde" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "serde_json" +version = "1.0.135" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + [[package]] name = "spin" version = "0.9.8" @@ -199,9 +251,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", diff --git a/user/mapper/Cargo.lock b/user/mapper/Cargo.lock index dbb374cc..d9288ac8 100644 --- a/user/mapper/Cargo.lock +++ b/user/mapper/Cargo.lock @@ -79,6 +79,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" dependencies = [ "ahash", + "serde", ] [[package]] @@ -91,6 +92,12 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + [[package]] name = "libc" version = "0.2.158" @@ -125,8 +132,15 @@ dependencies = [ "ms_hostcall", "ms_std", "ms_std_proc_macro", + "serde", ] +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + [[package]] name = "ms_hostcall" version = "0.1.0" @@ -145,6 +159,8 @@ dependencies = [ "linked_list_allocator", "ms_hostcall", "ms_std_proc_macro", + "serde", + "serde_json", "spin", "thiserror-no-std", "unwinding", @@ -156,7 +172,7 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 1.0.109", ] [[package]] @@ -167,18 +183,18 @@ checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -192,6 +208,12 @@ dependencies = [ "semver", ] +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + [[package]] name = "scopeguard" version = "1.2.0" @@ -204,6 +226,38 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +[[package]] +name = "serde" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "serde_json" +version = "1.0.135" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + [[package]] name = "spin" version = "0.9.8" @@ -241,9 +295,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", @@ -309,5 +363,5 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.96", ] diff --git a/user/mapper/Cargo.toml b/user/mapper/Cargo.toml index 05091d71..74ab023b 100644 --- a/user/mapper/Cargo.toml +++ b/user/mapper/Cargo.toml @@ -15,8 +15,10 @@ ms_std_proc_macro = { path = "../../ms_std_proc_macro" } hashbrown = { version = "=0.14.3", default-features = false, features = [ "ahash", + "serde", ] } heapless = { version = "0.8.0", default-features = false } +serde = { version = "1.0.217", default-features = false, features = ["derive"] } [features] mpk = ["ms_std/mpk"] diff --git a/user/mapper/src/lib.rs b/user/mapper/src/lib.rs index 77a79dfc..05555275 100644 --- a/user/mapper/src/lib.rs +++ b/user/mapper/src/lib.rs @@ -23,6 +23,7 @@ use ms_std::{ time::{SystemTime, UNIX_EPOCH}, }; use ms_std_proc_macro::FaasData; +use serde::{Deserialize, Serialize}; extern crate alloc; @@ -31,7 +32,7 @@ extern crate alloc; // content: String, // } -#[derive(FaasData)] +#[derive(FaasData, Serialize, Deserialize)] struct Mapper2Reducer { #[cfg(feature = "pkey_per_func")] shuffle: heapless::FnvIndexMap, u32, 1024>, diff --git a/user/merger/Cargo.lock b/user/merger/Cargo.lock index 6b92e5b6..2e946e5a 100644 --- a/user/merger/Cargo.lock +++ b/user/merger/Cargo.lock @@ -70,6 +70,12 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + [[package]] name = "libc" version = "0.2.150" @@ -95,6 +101,12 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + [[package]] name = "merger" version = "0.1.0" @@ -103,6 +115,7 @@ dependencies = [ "ms_hostcall", "ms_std", "ms_std_proc_macro", + "serde", ] [[package]] @@ -123,6 +136,8 @@ dependencies = [ "linked_list_allocator", "ms_hostcall", "ms_std_proc_macro", + "serde", + "serde_json", "spin", "thiserror-no-std", "unwinding", @@ -134,23 +149,23 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 1.0.109", ] [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -164,6 +179,12 @@ dependencies = [ "semver", ] +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + [[package]] name = "scopeguard" version = "1.2.0" @@ -176,6 +197,38 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +[[package]] +name = "serde" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "serde_json" +version = "1.0.135" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + [[package]] name = "spin" version = "0.9.8" @@ -213,9 +266,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", diff --git a/user/merger/Cargo.toml b/user/merger/Cargo.toml index 976c17fa..4d3d21c9 100644 --- a/user/merger/Cargo.toml +++ b/user/merger/Cargo.toml @@ -13,6 +13,7 @@ ms_std = { path = "../../ms_std", features = ["alloc_def", "unwinding"] } ms_hostcall = { path = "../../ms_hostcall" } ms_std_proc_macro = { path = "../../ms_std_proc_macro" } heapless = "0.8.0" +serde = { version = "1.0.217", default-features = false, features = ["derive"] } [features] mpk = ["ms_std/mpk"] diff --git a/user/merger/src/lib.rs b/user/merger/src/lib.rs index 58089336..d20809b5 100644 --- a/user/merger/src/lib.rs +++ b/user/merger/src/lib.rs @@ -7,13 +7,14 @@ use ms_std::{ time::{SystemTime, UNIX_EPOCH}, }; use ms_std_proc_macro::FaasData; +use serde::{Deserialize, Serialize}; #[cfg(feature = "pkey_per_func")] type NumberArray = heapless::Vec; #[cfg(not(feature = "pkey_per_func"))] type NumberArray = Vec; -#[derive(Default, FaasData)] +#[derive(Default, FaasData, Serialize, Deserialize)] struct VecArg { #[cfg(feature = "pkey_per_func")] array: heapless::Vec, diff --git a/user/reducer/Cargo.lock b/user/reducer/Cargo.lock index 04a771a1..c4df4b64 100644 --- a/user/reducer/Cargo.lock +++ b/user/reducer/Cargo.lock @@ -79,6 +79,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" dependencies = [ "ahash", + "serde", ] [[package]] @@ -91,6 +92,12 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + [[package]] name = "libc" version = "0.2.150" @@ -116,6 +123,12 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + [[package]] name = "ms_hostcall" version = "0.1.0" @@ -134,6 +147,8 @@ dependencies = [ "linked_list_allocator", "ms_hostcall", "ms_std_proc_macro", + "serde", + "serde_json", "spin", "thiserror-no-std", "unwinding", @@ -145,7 +160,7 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 1.0.109", ] [[package]] @@ -156,18 +171,18 @@ checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -181,6 +196,7 @@ dependencies = [ "ms_hostcall", "ms_std", "ms_std_proc_macro", + "serde", ] [[package]] @@ -192,6 +208,12 @@ dependencies = [ "semver", ] +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + [[package]] name = "scopeguard" version = "1.2.0" @@ -204,6 +226,38 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +[[package]] +name = "serde" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "serde_json" +version = "1.0.135" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + [[package]] name = "spin" version = "0.9.8" @@ -241,9 +295,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", @@ -309,5 +363,5 @@ checksum = "dd7e48ccf166952882ca8bd778a43502c64f33bf94c12ebe2a7f08e5a0f6689f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.96", ] diff --git a/user/reducer/Cargo.toml b/user/reducer/Cargo.toml index cd3c3247..3082e2e1 100644 --- a/user/reducer/Cargo.toml +++ b/user/reducer/Cargo.toml @@ -14,7 +14,11 @@ ms_hostcall = { path = "../../ms_hostcall" } ms_std_proc_macro = { path = "../../ms_std_proc_macro" } heapless = { version = "0.8.0", default-features = false } -hashbrown = { version = "0.14", default-features = false, features = ["ahash"] } +hashbrown = { version = "0.14", default-features = false, features = [ + "ahash", + "serde", +] } +serde = { version = "1.0.217", default-features = false, features = ["derive"] } [features] mpk = ["ms_std/mpk"] diff --git a/user/reducer/src/lib.rs b/user/reducer/src/lib.rs index a671bdd5..57a4705d 100644 --- a/user/reducer/src/lib.rs +++ b/user/reducer/src/lib.rs @@ -14,10 +14,11 @@ use ms_std::{ time::{SystemTime, UNIX_EPOCH}, }; use ms_std_proc_macro::FaasData; +use serde::{Deserialize, Serialize}; extern crate alloc; -#[derive(FaasData)] +#[derive(FaasData, Serialize, Deserialize, Default)] struct Mapper2Reducer { #[cfg(feature = "pkey_per_func")] shuffle: heapless::FnvIndexMap, u32, 1024>, diff --git a/user/simple_file/Cargo.lock b/user/simple_file/Cargo.lock index 20985b30..90894a2d 100644 --- a/user/simple_file/Cargo.lock +++ b/user/simple_file/Cargo.lock @@ -70,6 +70,12 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + [[package]] name = "libc" version = "0.2.150" @@ -95,6 +101,12 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + [[package]] name = "ms_hostcall" version = "0.1.0" @@ -113,6 +125,8 @@ dependencies = [ "linked_list_allocator", "ms_hostcall", "ms_std_proc_macro", + "serde", + "serde_json", "spin", "thiserror-no-std", "unwinding", @@ -124,23 +138,23 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 1.0.109", ] [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -154,6 +168,12 @@ dependencies = [ "semver", ] +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + [[package]] name = "scopeguard" version = "1.2.0" @@ -166,6 +186,38 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +[[package]] +name = "serde" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "serde_json" +version = "1.0.135" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + [[package]] name = "simple_file" version = "0.1.0" @@ -212,9 +264,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", diff --git a/user/simple_http/Cargo.lock b/user/simple_http/Cargo.lock index ef9febd9..20707ddf 100644 --- a/user/simple_http/Cargo.lock +++ b/user/simple_http/Cargo.lock @@ -70,6 +70,12 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + [[package]] name = "libc" version = "0.2.152" @@ -95,6 +101,12 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + [[package]] name = "ms_hostcall" version = "0.1.0" @@ -113,6 +125,8 @@ dependencies = [ "linked_list_allocator", "ms_hostcall", "ms_std_proc_macro", + "serde", + "serde_json", "spin", "thiserror-no-std", "unwinding", @@ -124,23 +138,23 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 1.0.109", ] [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -154,6 +168,12 @@ dependencies = [ "semver", ] +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + [[package]] name = "scopeguard" version = "1.2.0" @@ -166,6 +186,38 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +[[package]] +name = "serde" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "serde_json" +version = "1.0.135" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + [[package]] name = "simple_http" version = "0.1.0" @@ -210,9 +262,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", diff --git a/user/sorter/Cargo.lock b/user/sorter/Cargo.lock index 397dfc15..dbd0c349 100644 --- a/user/sorter/Cargo.lock +++ b/user/sorter/Cargo.lock @@ -70,6 +70,12 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + [[package]] name = "libc" version = "0.2.150" @@ -95,6 +101,12 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + [[package]] name = "ms_hostcall" version = "0.1.0" @@ -113,6 +125,8 @@ dependencies = [ "linked_list_allocator", "ms_hostcall", "ms_std_proc_macro", + "serde", + "serde_json", "spin", "thiserror-no-std", "unwinding", @@ -124,23 +138,23 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 1.0.109", ] [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -154,6 +168,12 @@ dependencies = [ "semver", ] +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + [[package]] name = "scopeguard" version = "1.2.0" @@ -166,6 +186,38 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +[[package]] +name = "serde" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "serde_json" +version = "1.0.135" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + [[package]] name = "sorter" version = "0.1.0" @@ -174,6 +226,7 @@ dependencies = [ "ms_hostcall", "ms_std", "ms_std_proc_macro", + "serde", ] [[package]] @@ -213,9 +266,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", diff --git a/user/sorter/Cargo.toml b/user/sorter/Cargo.toml index 6565e72b..057bd3e7 100644 --- a/user/sorter/Cargo.toml +++ b/user/sorter/Cargo.toml @@ -13,6 +13,7 @@ ms_std = { path = "../../ms_std", features = ["alloc_def", "unwinding"] } ms_hostcall = { path = "../../ms_hostcall" } ms_std_proc_macro = { path = "../../ms_std_proc_macro" } heapless = "0.8.0" +serde = { version = "1.0.217", default-features = false, features = ["derive"] } [features] mpk = ["ms_std/mpk"] diff --git a/user/sorter/src/lib.rs b/user/sorter/src/lib.rs index 1d375005..79fa11c5 100644 --- a/user/sorter/src/lib.rs +++ b/user/sorter/src/lib.rs @@ -8,16 +8,17 @@ use ms_std::{ time::{SystemTime, UNIX_EPOCH}, }; use ms_std_proc_macro::FaasData; +use serde::{Deserialize, Serialize}; -#[derive(Default, FaasData)] +#[derive(Default, FaasData, Serialize, Deserialize)] struct Reader2Sorter { #[cfg(feature = "pkey_per_func")] - raw_data: heapless::String<{ 110 * 1024 * 1024 }>, + content: heapless::String<{ 110 * 1024 * 1024 }>, #[cfg(not(feature = "pkey_per_func"))] - raw_data: String, + content: String, } -#[derive(Default, FaasData)] +#[derive(Default, FaasData, Serialize, Deserialize)] struct VecArg { #[cfg(feature = "pkey_per_func")] array: heapless::Vec, @@ -53,12 +54,12 @@ pub fn main() -> Result<()> { println!( "sorter: input-part-{}, input length={}", my_id, - input.raw_data.len() + input.content.len() ); let mut buffer: DataBuffer = DataBuffer::with_slot(format!("sorter-resp-part-{}", my_id)); - for num in input.raw_data.split(',') { + for num in input.content.split(',') { let num = num.trim(); if num.is_empty() { continue; diff --git a/user/splitter/Cargo.lock b/user/splitter/Cargo.lock index 6efe178c..1a6a5e07 100644 --- a/user/splitter/Cargo.lock +++ b/user/splitter/Cargo.lock @@ -70,6 +70,12 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + [[package]] name = "libc" version = "0.2.150" @@ -95,6 +101,12 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + [[package]] name = "ms_hostcall" version = "0.1.0" @@ -113,6 +125,8 @@ dependencies = [ "linked_list_allocator", "ms_hostcall", "ms_std_proc_macro", + "serde", + "serde_json", "spin", "thiserror-no-std", "unwinding", @@ -124,23 +138,23 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 1.0.109", ] [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -154,6 +168,12 @@ dependencies = [ "semver", ] +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + [[package]] name = "scopeguard" version = "1.2.0" @@ -166,6 +186,38 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +[[package]] +name = "serde" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.217" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "serde_json" +version = "1.0.135" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + [[package]] name = "spin" version = "0.9.8" @@ -192,6 +244,7 @@ dependencies = [ "ms_hostcall", "ms_std", "ms_std_proc_macro", + "serde", ] [[package]] @@ -213,9 +266,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", diff --git a/user/splitter/Cargo.toml b/user/splitter/Cargo.toml index 4e714605..bb2eb749 100644 --- a/user/splitter/Cargo.toml +++ b/user/splitter/Cargo.toml @@ -13,6 +13,7 @@ ms_std = { path = "../../ms_std", features = ["alloc_def", "unwinding"] } ms_hostcall = { path = "../../ms_hostcall" } ms_std_proc_macro = { path = "../../ms_std_proc_macro" } heapless = "0.8.0" +serde = { version = "1.0.217", default-features = false, features = ["derive"] } [features] mpk = ["ms_std/mpk"] diff --git a/user/splitter/src/lib.rs b/user/splitter/src/lib.rs index fb11ef14..17f27958 100644 --- a/user/splitter/src/lib.rs +++ b/user/splitter/src/lib.rs @@ -8,8 +8,9 @@ use ms_std::{ time::{SystemTime, UNIX_EPOCH}, }; use ms_std_proc_macro::FaasData; +use serde::{Deserialize, Serialize}; -#[derive(Default, FaasData)] +#[derive(Default, FaasData, Serialize, Deserialize)] struct VecArg { #[cfg(feature = "pkey_per_func")] array: heapless::Vec, diff --git a/wasmtime_wasi_api/Cargo.toml b/wasmtime_wasi_api/Cargo.toml index 6b73f0b9..e1f355c0 100644 --- a/wasmtime_wasi_api/Cargo.toml +++ b/wasmtime_wasi_api/Cargo.toml @@ -6,8 +6,10 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -ms_std = { path = "../ms_std", default-features = false } -ms_hostcall = { path = "../ms_hostcall", default-features = false, features = ["signal"] } +ms_std = { path = "../ms_std", default-features = false, features = [] } +ms_hostcall = { path = "../ms_hostcall", default-features = false, features = [ + "signal", +] } ms_std_proc_macro = { path = "../ms_std_proc_macro" } spin = "0.9.8" hashbrown = { version = "0.14", default-features = false, features = ["ahash"] }