Closed 0xF6 closed 3 months ago
The Ishtar virtual machine has undergone significant updates, enhancing JIT compilation, garbage collection, and native library interactions. These changes introduce new functionalities like memory management improvements, detailed debugging features, and enhanced error handling. Test methods have been added, and project configurations adjusted to support experimental features, ensuring robustness and efficiency in runtime operations.
Files Affected | Summary of Changes |
---|---|
Program.cs |
Significant modifications to TestJitFunctional , addition of TestJit2 method for native library interaction. |
VirtualMachine.cs |
Initialization of VMConfig , addition of HasFaulted() method, and NativeStorage field. |
FFI/ForeignFunctionInterface.cs |
Removed System.Runtime.InteropServices import statement. |
__builtin/B_NAPI.cs |
Modified variable assignment to use current.vm.NativeStorage . |
runtime/AppVault.cs |
Renamed WorkDirecotry to WorkDirectory , removed vein.fs import. |
runtime/jit/ABI.cs |
Introduced ABI class for native library and symbol loading. |
runtime/jit/AssemblerArgumentConverter.cs |
Added methods for generating assembler code and converting arguments. |
runtime/jit/AssemblerFormatterOutputImpl.cs |
Introduced AssemblerFormatterOutputImpl class. |
runtime/jit/IshtarJIT.cs |
Added JIT compilation functionality in the Ishtar virtual machine. |
runtime/jit/NativeCallData.cs |
Introduced NativeCallData struct for native call information. |
runtime/jit/NativeCallInfo.cs |
Added retIsPointer property to NativeCallInfo class. |
runtime/jit/RegisterEx.cs , RegisterKind.cs |
Introduced utility classes for register management. |
runtime/jit/TypeMarshalBox.cs |
Added TypeMarshalBox record for size and class information. |
runtime/jit/x64_AssemblerStep.cs |
Introduced x64_AssemblerStep struct for assembler code generation. |
runtime/vin/NativeStorage.cs |
Updated NativeStorage class with VirtualMachine parameter and instance members. |
runtime/vin/loaders/NullLoader.cs |
Introduced NullLoader class implementing INativeLoader interface. |
🐇✨ In the code's maze, through twists and turns, A rabbit hops, as the machine learns. With each leap and bound, New paths are found, In bytes and bits, the progress churns. 🌟🐾
Summary by CodeRabbit
New Features
TestJit2
inProgram.cs
for interacting with native libraries and memory allocation.GCColor
enum inGCFlags.cs
with valuesRED
,YELLOW
, andGREEN
.samples_static_fns.cs
for enhanced functionality.Bug Fixes
GCTest.cs
to prevent potential leaks.ishtar_test.csproj
for improved compatibility.Documentation
Refactor
IshtarGC.cs
for improved efficiency in memory management.Tests
JitTest.cs
to include new scenarios for JIT compilation and memory management.