Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
45fcebd
Moved WASM bindings from core into wasm executable
AlixANNERAUD Feb 10, 2026
b2289ed
Add BijectiveBTreeMap implementation for bidirectional mapping
AlixANNERAUD Feb 10, 2026
742efc9
Moved virtual machine from core into wasm executable
AlixANNERAUD Feb 10, 2026
a8fd0e9
Remove virtual machine references from native example and update WASM…
AlixANNERAUD Feb 10, 2026
561eda1
Refactor WASM build configuration and graphics module structure
AlixANNERAUD Feb 11, 2026
942253f
Remove Clippy check for WASM from CI workflow
AlixANNERAUD Feb 11, 2026
01dc953
Add unit tests for BijectiveBTreeMap functionality
AlixANNERAUD Feb 11, 2026
ee5e252
Add ignore attribute to interactive tests in calculator and wasm inte…
AlixANNERAUD Feb 11, 2026
bd3c285
Remove WASM graphics bindings file to decouple virtual machine from e…
AlixANNERAUD Feb 11, 2026
ebacabd
Add c_bindings feature to WASM configuration and update graphics module
AlixANNERAUD Feb 11, 2026
4670f02
Refactor WASM virtual machine: decouple ABI functions, update error t…
AlixANNERAUD Feb 11, 2026
5af2c35
Update c_functions module path to reflect new directory structure for…
AlixANNERAUD Feb 11, 2026
32a2a37
Add guest tasks for WASM: check, doc, and clippy; update default_gues…
AlixANNERAUD Feb 11, 2026
4e7376a
Refactor deployment workflow: update documentation build steps for WA…
AlixANNERAUD Feb 11, 2026
eba8971
Update CI workflows: add Clippy and documentation checks for Guest, r…
AlixANNERAUD Feb 11, 2026
05793e1
Refactor host module imports: streamline virtual machine usage by rem…
AlixANNERAUD Feb 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .cargo/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ LVGL_FONTS_DIR = { value = "modules/graphics/fonts_generator/generated_fonts", r

WAMR_BUILD_PLATFORM = "XILA"

WAMR_SHARED_PLATFORM_CONFIG = { value = "modules/virtual_machine/wamr/shared_platform.cmake", relative = true }
WAMR_SHARED_PLATFORM_CONFIG = { value = "executables/wasm/wamr/shared_platform.cmake", relative = true }
LLVM_LIB_CFG_PATH = "/usr/lib/llvm-19/cmake/"
LITTLEFS_CONFIG = { value = "modules/little_fs/include/little_fs_config.h", relative = true }

Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,14 @@ jobs:
- name: Check | Clippy (Host)
run: cargo make clippy-host

- name: Check | Clippy (WASM)
run: cargo make clippy-wasm
- name: Check | Clippy (Guest)
run: cargo make clippy-guest

- name: Check | Documentation (Host)
run: RUSTDOCFLAGS="--deny warnings" cargo make doc-host

- name: Check | Documentation (WASM)
run: RUSTDOCFLAGS="--deny warnings" cargo make doc-wasm
- name: Check | Documentation (Guest)
run: RUSTDOCFLAGS="--deny warnings" cargo make doc-guest

- name: Build | Example (Native)
run: cargo make build -p native_example && cargo clean -p native_example
Expand Down
10 changes: 4 additions & 6 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,13 @@ jobs:
run: |
cargo make doc-host
mkdir -p ./pages/host/
cp ./documentation/index.html ./pages/host/
cp -r ./target/x86_64-unknown-linux-gnu/doc/* ./pages/host/

- name: Build | Documentation (WASM)
- name: Build | Documentation (Guest)
run: |
cargo make doc-wasm
mkdir -p ./pages/wasm/
cp ./documentation/index.html ./pages/wasm
cp -r ./target/wasm32-unknown-unknown/doc/* ./pages/wasm/
cargo make doc-guest
mkdir -p ./pages/guest/
cp -r ./target/wasm32-unknown-unknown/doc/guest/* ./pages/guest/

- name: Build | WASM demonstration (en)
working-directory: ./examples/wasm
Expand Down
28 changes: 4 additions & 24 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,12 @@ lto = true
# - Always included
internationalization = { workspace = true }

# - WASM
wasm_bindings = { workspace = true, optional = true }

# - Host
abi_context = { workspace = true, optional = true }
abi_declarations = { workspace = true, optional = true }
abi_definitions = { workspace = true, optional = true }
little_fs = { workspace = true, optional = true }
virtual_machine = { workspace = true, optional = true }
virtual_file_system = { workspace = true, optional = true }
graphics = { workspace = true, optional = true }
task = { workspace = true, optional = true }
Expand All @@ -40,16 +37,11 @@ authentication = { workspace = true, optional = true }
log = { workspace = true, optional = true }
shared = { workspace = true, optional = true }
synchronization = { workspace = true, optional = true }
host_bindings = { workspace = true, optional = true }
bootsplash = { workspace = true, optional = true }
network = { workspace = true, optional = true }

[features]
default = []

executable_building = ["executable/building"]

host = [
default = [
"dep:abi_context",
"dep:abi_declarations",
"dep:abi_definitions",
Expand All @@ -71,23 +63,19 @@ host = [
"abi_definitions",
"dep:network",
]

executable_building = ["executable/building"]
host = []
abi_definitions = ["dep:abi_definitions"]
virtual_machine = ["dep:virtual_machine", "dep:host_bindings"]
graphics_rendering_rgb565 = ["graphics/rendering_rgb565"]
graphics_rendering_xrgb8888 = ["graphics/rendering_xrgb8888"]
wasm = ["dep:wasm_bindings"]
wasm_c_bindings = ["wasm", "wasm_bindings/c_bindings"]


[workspace.dependencies]
# - Modules
wasm_bindings = { path = "modules/bindings/wasm" }

abi_context = { path = "modules/abi/context" }
abi_declarations = { path = "modules/abi/declarations" }
abi_definitions = { path = "modules/abi/definitions" }
little_fs = { path = "modules/little_fs" }
virtual_machine = { path = "modules/virtual_machine" }
virtual_file_system = { path = "modules/virtual_file_system" }
graphics = { path = "modules/graphics" }
time = { path = "modules/time" }
Expand All @@ -96,8 +84,6 @@ users = { path = "modules/users" }
memory = { path = "modules/memory" }
executable = { path = "modules/executable" }
file_system = { path = "modules/file_system" }
host_bindings = { path = "modules/bindings/host" }
bindings_utilities = { path = "modules/bindings/utilities" }
authentication = { path = "modules/authentication" }
log = { path = "modules/log" }
shared = { path = "modules/shared" }
Expand Down Expand Up @@ -153,7 +139,6 @@ embedded-io = { version = "0.7", features = ["alloc"] }
[workspace]
members = [
"modules/file_system",
"modules/virtual_machine",
"modules/graphics",
"modules/task",
"modules/users",
Expand All @@ -166,10 +151,6 @@ members = [
"modules/virtual_file_system",
"modules/little_fs",
"modules/target",
"modules/bindings/utilities",
"modules/bindings/host",
"modules/bindings/host/tests/wasm_test",
"modules/bindings/wasm",
"executables/file_manager",
"executables/shell/command_line",
"modules/executable",
Expand All @@ -193,7 +174,6 @@ members = [
"drivers/shared",
"drivers/std",
"drivers/wasm",
"modules/virtual_machine/tests/wasm_test",
"modules/internationalization",
"modules/internationalization/macros",
"modules/graphics/fonts_generator",
Expand Down
44 changes: 28 additions & 16 deletions Makefile.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,18 +34,20 @@ args = [
"--target",
"x86_64-unknown-linux-gnu",
"--features",
"host,abi_definitions,virtual_machine,graphics_rendering_xrgb8888",
"host,abi_definitions,graphics_rendering_xrgb8888",
]

[tasks.check-wasm]
[tasks.check-guest]
toolchain = "stable"
command = "cargo"
args = [
"check",
"--target",
"wasm32-unknown-unknown",
"--package",
"wasm",
"--features",
"wasm,wasm_c_bindings",
"default_guest",
]

[tasks.doc-host]
Expand All @@ -54,56 +56,66 @@ command = "cargo"
args = [
"doc",
"--features",
"host,abi_definitions,virtual_machine,graphics_rendering_xrgb8888",
"host,abi_definitions,graphics_rendering_xrgb8888",
"--target",
"x86_64-unknown-linux-gnu",
]

[tasks.doc-wasm]
[tasks.doc-guest]
toolchain = "stable"
command = "cargo"
args = ["doc", "--features", "wasm", "--target", "wasm32-unknown-unknown"]
args = [
"doc",
"--package",
"wasm",
"--features",
"default_guest",
"--target",
"wasm32-unknown-unknown",
]

[tasks.doc]
dependencies = ["doc-host", "doc-wasm"]
dependencies = ["doc-host", "doc-guest"]

[tasks.check]
dependencies = ["check-host", "check-wasm"]
dependencies = ["check-host", "check-guest"]

[tasks.clippy-wasm]
[tasks.clippy-host]
install_crate = "clippy"
toolchain = "stable"
command = "cargo"
args = [
"clippy",
"--target",
"wasm32-unknown-unknown",
"x86_64-unknown-linux-gnu",
"--features",
"wasm,wasm_c_bindings",
"host,abi_definitions,graphics_rendering_xrgb8888",
"--all-targets",
"--",
"-D",
"warnings",
]

[tasks.clippy-host]
[tasks.clippy-guest]
install_crate = "clippy"
toolchain = "stable"
command = "cargo"
args = [
"clippy",
"--target",
"x86_64-unknown-linux-gnu",
"--package",
"wasm",
"--features",
"host,abi_definitions,virtual_machine,graphics_rendering_xrgb8888",
"default_guest",
"--target",
"wasm32-unknown-unknown",
"--all-targets",
"--",
"-D",
"warnings",
]

[tasks.clippy]
dependencies = ["clippy-host", "clippy-wasm"]
dependencies = ["clippy-host", "clippy-guest"]

[tasks.lint]
install_crate = "clippy"
Expand Down
14 changes: 0 additions & 14 deletions documentation/index.html

This file was deleted.

3 changes: 1 addition & 2 deletions examples/native/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,13 @@ edition = "2024"
[target.'cfg(any(target_os = "linux", target_os = "macos", target_os = "windows"))'.dependencies]
xila = { path = "../../", features = [
"host",
"virtual_machine",
"graphics_rendering_xrgb8888",
"executable_building",
] }
file_manager = { workspace = true }
command_line_shell = { workspace = true }
graphical_shell = { workspace = true }
wasm = { workspace = true }
wasm = { workspace = true, features = ["default_host"] }
terminal = { workspace = true }
settings = { workspace = true }
drivers_core = { workspace = true }
Expand Down
5 changes: 0 additions & 5 deletions examples/native/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ async fn main() {
use xila::file_system::mbr::Mbr;
use xila::file_system::mbr::PartitionKind;
use xila::graphics;
use xila::host_bindings;
use xila::little_fs;
use xila::log;
use xila::network::{self, ADD_DNS_SERVER, ADD_IP_ADDRESS, ADD_ROUTE};
Expand All @@ -30,7 +29,6 @@ async fn main() {
use xila::virtual_file_system;
use xila::virtual_file_system::File;
use xila::virtual_file_system::mount_static;
use xila::virtual_machine;

// - Initialize the system
log::initialize(&drivers_std::log::Logger).unwrap();
Expand Down Expand Up @@ -201,9 +199,6 @@ async fn main() {

file.close(virtual_file_system).await.unwrap();

// Initialize the virtual machine
virtual_machine::initialize(&[&host_bindings::GraphicsBindings]);

// Mount static executables

let virtual_file_system = virtual_file_system::get_instance();
Expand Down
4 changes: 2 additions & 2 deletions executables/calculator/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,20 @@ version = "0.1.0"
edition = "2024"

[target.'cfg(target_arch = "wasm32")'.dependencies]
xila = { path = "../../", features = ["wasm"] }
wasm = { workspace = true, features = ["guest", "graphics"] }

[target.'cfg(any(target_os = "linux", target_os = "macos", target_os = "windows"))'.dev-dependencies]
xila = { path = "../../", features = [
"host",
"executable_building",
"virtual_machine",
"graphics_rendering_xrgb8888",
] }
drivers_core = { workspace = true }
drivers_std = { workspace = true }
drivers_shared = { workspace = true }
drivers_native = { workspace = true }
testing = { workspace = true }
wasm = { workspace = true, features = ["default_host"] }

[[test]]
name = "calculator_test"
Expand Down
Loading