diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
index 9929897..8e33a6d 100644
--- a/.idea/codeStyles/Project.xml
+++ b/.idea/codeStyles/Project.xml
@@ -33,7 +33,6 @@
-
diff --git a/Cargo.toml b/Cargo.toml
index aa31a88..803f4ff 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
[workspace]
members = [
- "crates/*"
+ "crates/*"
]
resolver = "3"
@@ -10,13 +10,17 @@ deku_derive = "0.20.0"
log = "0.4.28"
env_logger = "0.11.8"
itertools = "0.14.0"
+indexmap = "2.12.1"
sevenz-rust2 = { version = "0.19.3", features = ["brotli", "zstd"] }
dashmap = "7.0.0-rc2"
libloading = "0.8.9"
libffi = "5.0.0"
jni = "0.21.1"
-roast-vm-sys = { path = "crates/roast-vm-sys", version = "0.1.0" }
-roast-vm-core = { path = "crates/core", version = "0.1.0" }
+roast-vm-sys = { path = "crates/roast-vm-sys" }
+roast-vm-core = { path = "crates/core" }
+colored = "3.0.0"
+parking_lot = "0.12"
+cesu8 = "1.1.0"
[profile.dev-opt]
inherits = "dev"
diff --git a/crates/core/Cargo.toml b/crates/core/Cargo.toml
index b17ef3f..b162e26 100644
--- a/crates/core/Cargo.toml
+++ b/crates/core/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "roast-vm-core"
-version = "0.1.0"
+version = "0.1.5"
edition = "2024"
publish = ["nexus"]
@@ -15,16 +15,12 @@ libloading = { workspace = true }
libffi = { workspace = true }
jni = { workspace = true }
itertools = { workspace = true }
-colored = "3.0.0"
-parking_lot = "0.12"
-cesu8 = "1.1.0"
+colored = { workspace = true }
+parking_lot = { workspace = true }
+cesu8 = { workspace = true }
-[build-dependencies]
-bindgen = "0.72.1"
-[lints.rust]
-#missing_docs = "warn"
[[bin]]
name = "roast"
-path = "src/main.rs"
\ No newline at end of file
+path = "src/main.rs"
diff --git a/crates/core/src/class_loader.rs b/crates/core/src/class_loader.rs
index 869a262..5f9057d 100644
--- a/crates/core/src/class_loader.rs
+++ b/crates/core/src/class_loader.rs
@@ -196,15 +196,7 @@ impl ClassLoader {
.bimage
.get_class(module, class_fqn)
.or_else(|e| Self::load_class_from_disk(what))
- .map_err(|e1| {
- let classes = self
- .classes
- .iter()
- .map(|x| x.this_class.clone())
- .collect::>();
- // println!("{:#?}", classes);
- VmError::LoaderError(format!("failed to find class: {:?}\n{:#?}", what, classes))
- })?;
+ .map_err(|e1| VmError::LoaderError(format!("failed to find class: {}", what)))?;
let (_, cf) =
ClassFile::from_bytes((bytes.as_ref(), 0)).map_err(|e| VmError::DekuError(e))?;
let runtime = self.runtime_class(cf);
diff --git a/crates/core/src/frame.rs b/crates/core/src/frame.rs
index b211174..e9f815f 100644
--- a/crates/core/src/frame.rs
+++ b/crates/core/src/frame.rs
@@ -4,15 +4,15 @@ use crate::class_file::constant_pool::{ConstantPoolExt, ConstantPoolGet};
use crate::class_file::{Bytecode, ConstantPoolEntry, MethodRef};
use crate::error::{StackTraceElement, VmError};
use crate::instructions::{Ops, WideData};
-use crate::objects::array::ArrayReference;
use crate::objects::ReferenceKind;
+use crate::objects::array::ArrayReference;
use crate::prim::*;
use crate::value::{LocalVariables, OperandStack, Primitive, Value};
use crate::vm::Vm;
use crate::{
- array_store, array_store_cast, binary_op, convert_float_to_int, convert_int_narrow,
- convert_simple, error, float_cmp, if_int_cmp, if_int_zero, int_div_rem, load, shift_op, store,
- unary_op, BaseType, FieldType, VmThread,
+ BaseType, FieldType, VmThread, array_store, array_store_cast, binary_op, convert_float_to_int,
+ convert_int_narrow, convert_simple, error, float_cmp, if_int_cmp, if_int_zero, int_div_rem,
+ load, shift_op, store, unary_op,
};
use deku::DekuContainerRead;
use log::{info, trace, warn};
@@ -134,19 +134,10 @@ impl Frame {
line_number_table,
}
}
- pub(crate) fn execute(&mut self) -> Result