Skip to content

Commit c060ba2

Browse files
SersemPecaalehander92
authored andcommitted
feat: Add initial in-memory filesystem for wasm build
1 parent 0564fd3 commit c060ba2

File tree

7 files changed

+134
-48
lines changed

7 files changed

+134
-48
lines changed

src/db-backend/Cargo.lock

Lines changed: 79 additions & 31 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/db-backend/Cargo.toml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ web-sys = { version = "0.3", optional = true, features = [
4747
"DedicatedWorkerGlobalScope", "WorkerGlobalScope", "console", "MessageEvent",
4848
"Worker", "Window" ] }
4949

50+
vfs = "0.12"
51+
5052
expanduser = { version = "1.2.2", optional = true}
5153

5254
[lib]
@@ -69,13 +71,10 @@ name = "schema-generator"
6971
path = "src/bin/schema_generator.rs"
7072
required-features = ["io-transport"]
7173

72-
# CPPFLAGS_wasm32_unknown_unknown = "--target=wasm32 --sysroot={cwd}/wasm-sysroot -isystem {cwd}/wasm-sysroot/include"
73-
# CFLAGS_wasm32_unknown_unknown = "-I{cwd}/wasm-sysroot/include -DNDEBUG -Wbad-function-cast -Wcast-function-type -fno-builtin"
74-
7574
[features]
7675
debugging = []
7776

78-
default = ["io-transport"]
77+
default = ["browser-transport"]
7978

8079
io-transport = ["dep:expanduser"]
8180
browser-transport = ["dep:serde-wasm-bindgen", "dep:wasm-bindgen",

src/db-backend/build_wasm.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ cargo clean
1414
# build (just your crate, or the specific package)
1515
cargo build --target wasm32-unknown-unknown --release --no-default-features --features browser-transport
1616

17-
wasm-pack build --target web --release -- --no-default-features --features browser-transport
17+
wasm-pack build --target web --release -d ./wasm-testing/pkg -- --no-default-features --features browser-transport

src/db-backend/src/dap_server.rs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,6 @@ pub fn run(socket_path: &PathBuf) -> Result<(), Box<dyn Error>> {
116116
// handle_client(&mut reader, &mut writer)
117117
// }
118118

119-
#[cfg(feature = "io-transport")]
120119
fn launch(trace_folder: &Path, trace_file: &Path, seq: i64) -> Result<Handler, Box<dyn Error>> {
121120
info!("run launch() for {:?}", trace_folder);
122121
let trace_file_format = if trace_file.extension() == Some(std::ffi::OsStr::new("json")) {
@@ -147,11 +146,6 @@ fn launch(trace_folder: &Path, trace_file: &Path, seq: i64) -> Result<Handler, B
147146
}
148147
}
149148

150-
#[cfg(feature = "browser-transport")]
151-
fn launch(trace_folder: &Path, trace_file: &Path, seq: i64) -> Result<Handler, Box<dyn Error>> {
152-
todo!()
153-
}
154-
155149
fn write_dap_messages<T: DapTransport>(
156150
transport: &mut T,
157151
handler: &mut Handler,

src/db-backend/src/lib.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ use crate::dap::setup_onmessage_callback;
1717
#[cfg(feature = "browser-transport")]
1818
pub mod c_compat;
1919

20+
#[cfg(feature = "browser-transport")]
21+
pub mod vfs;
22+
2023
pub mod calltrace;
2124

2225
#[cfg(feature = "io-transport")]

src/db-backend/src/trace_processor.rs

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#[cfg(feature = "io-transport")]
22
use expanduser::expanduser;
3+
use vfs::VfsPath;
34

45
use std::collections::HashMap;
56
use std::error::Error;
@@ -14,6 +15,7 @@ use runtime_tracing::{
1415

1516
use crate::db::{CellChange, Db, DbCall, DbRecordEvent, DbStep, EndOfProgram};
1617
// use crate::task::{Comp}
18+
//
1719

1820
#[derive(Debug, Clone, Copy)]
1921
struct CompoundValueInfo {
@@ -418,7 +420,7 @@ impl<'a> TraceProcessor<'a> {
418420
}
419421
}
420422

421-
#[cfg(not(target_arch = "wasm32"))]
423+
#[cfg(feature = "io-transport")]
422424
#[allow(clippy::panic)]
423425
pub fn load_trace_data(
424426
trace_file: &Path,
@@ -431,16 +433,20 @@ pub fn load_trace_data(
431433
Ok(trace_events)
432434
}
433435

434-
#[cfg(target_arch = "wasm32")]
436+
#[cfg(feature = "browser-transport")]
435437
#[allow(clippy::panic)]
436438
pub fn load_trace_data(
437439
trace_file: &Path,
438440
file_format: runtime_tracing::TraceEventsFileFormat,
439441
) -> Result<Vec<TraceLowLevelEvent>, Box<dyn Error>> {
440-
todo!()
442+
use crate::vfs::{load_trace_data_vfs, trace_vfs_root};
443+
444+
let path_str = trace_file.to_str().unwrap();
445+
446+
load_trace_data_vfs(trace_vfs_root(), path_str, file_format)
441447
}
442448

443-
#[cfg(not(target_arch = "wasm32"))]
449+
#[cfg(feature = "io-transport")]
444450
#[allow(clippy::panic)]
445451
pub fn load_trace_metadata(trace_metadata_file: &Path) -> Result<TraceMetadata, Box<dyn Error>> {
446452
// copied and adapted from https://stackoverflow.com/a/70926549/438099
@@ -453,8 +459,12 @@ pub fn load_trace_metadata(trace_metadata_file: &Path) -> Result<TraceMetadata,
453459
Ok(trace_metadata)
454460
}
455461

456-
#[cfg(target_arch = "wasm32")]
462+
#[cfg(feature = "browser-transport")]
457463
#[allow(clippy::panic)]
458464
pub fn load_trace_metadata(trace_metadata_file: &Path) -> Result<TraceMetadata, Box<dyn Error>> {
459-
todo!()
465+
use crate::vfs::{load_trace_metadata_vfs, trace_vfs_root};
466+
467+
let path_str = trace_metadata_file.to_str().unwrap();
468+
469+
load_trace_metadata_vfs(trace_vfs_root(), path_str)
460470
}

0 commit comments

Comments
 (0)