Closed 0xF6 closed 2 months ago
The recent changes enhance the Ishtar runtime with improved JIT compilation support via LLVM, streamline the handling of external native libraries, and update test configurations. Key updates include integrating LLVM for JIT compilation, modifying methods to use the new LLVM context, and refining the launchSettings.json
for better test execution paths.
File Path | Change Summary |
---|---|
runtime/ishtar.vm/FFI/ForeignFunctionInterface.cs |
Updated LinkExternalNativeLibrary to use importModule , call jitter.Compile21FFI , and remove NativeImportEntity . |
runtime/ishtar.vm/Properties/launchSettings.json |
Updated commandLineArgs paths for run test fast and run external_test configurations. |
runtime/ishtar.vm/VirtualMachine.cs |
Added LLVM context management, modified methods for JIT compilation, and updated method execution logic. |
runtime/ishtar.vm/ishtar.vm.csproj |
Added <RuntimeIdentifier> and <RuntimeIdentifiers> elements. |
runtime/ishtar.vm/runtime/jit/@llmv/LLVMContext.cs |
Introduced LLVMContext class for managing LLVM context and compiling FFIs. |
runtime/ishtar.vm/runtime/vm/PInvokeInfo.cs |
Implemented IEqualityComparer<PInvokeInfo> , added new fields and methods for FFI bindings and comparison. |
runtime/ishtar.vm/runtime/vm/RuntimeIshtarMethod.cs |
Removed SetExternalLink method and integrated its functionality into AsNative . |
runtime/ishtar.vm/runtime/vm/RuntimeIshtarModule.cs |
Replaced print statements with VirtualMachine.GlobalPrintln for logging and added debug print statements. |
vein_lang.sln.DotSettings |
Added user dictionary words: "jitted", "landingpad", "pinfo". |
sequenceDiagram
participant User
participant VirtualMachine
participant LLVMContext
participant ExternalLibrary
User->>VirtualMachine: Call Create()
VirtualMachine->>LLVMContext: Initialize LLVMContext
VirtualMachine->>ExternalLibrary: LinkExternalNativeLibrary()
ExternalLibrary->>LLVMContext: Compile21FFI()
LLVMContext->>VirtualMachine: Return compiled function
VirtualMachine->>User: Execution ready
In the land of code, where bytes do dance,
A rabbit hopped with joyful prance.
LLVM now joins the game,
JIT compiling, earning fame.
Paths aligned for tests to run,
Ishtar's journey has just begun.
With every change, we leap ahead,
In this digital warren, well-read.
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
@coderabbitai review
Summary by CodeRabbit
New Features
Bug Fixes
Refactor
AsNative
method for cleaner code.Chores