Closed 0xF6 closed 2 months ago
The recent updates introduce several enhancements and new features across the runtime and collections modules. Notable changes include the addition of an Async
flag to the MethodFlags
enum, the integration of a C# wrapper for libuv, and the introduction of various threading and task scheduling functionalities. The updates also include improvements to the garbage collection layout and new data structures like NativeConcurrentDictionary
and NativeQueue
.
File(s) / Path(s) | Change Summary |
---|---|
runtime/common/reflection/MethodFlags.cs |
Added Async flag to MethodFlags enum. |
runtime/ishtar.vm.libuv/LibUV.cs , .../ishtar.vm.libuv.csproj |
Introduced C# wrapper for libuv with bindings for various functions and a new project file. |
runtime/ishtar.vm/FFI/ForeignFunctionInterface.cs , .../@llmv/LLVMContext.cs |
Renamed Compile21FFI method to CompileFFI . |
runtime/ishtar.vm/Program.cs , .../VirtualMachine.cs |
Removed BoehmGCLayout.Native references, updated VirtualMachine initialization and flow. |
runtime/ishtar.vm/collections/NativeConcurrentDictionary.cs |
Introduced NativeConcurrentDictionary struct for thread-safe dictionary operations. |
runtime/ishtar.vm/collections/NativeQueue.cs |
Introduced NativeQueue struct for native queue operations. |
runtime/ishtar.vm/collections/NativeDictionary.cs |
Removed a commented-out method GetValues() . |
runtime/ishtar.vm/runtime/NativeException.cs |
Added SEMAPHORE_FAILED to WNE enum. |
runtime/ishtar.vm/runtime/gc/BoehmGCLayout.cs , .../GCLayout.cs , .../IshtarGC.cs |
Added new methods for thread management and stack base retrieval. |
runtime/ishtar.vm/runtime/io/IshtarRawThread.cs , .../IshtarThread.cs |
Introduced IshtarRawThread struct and updated IshtarThread struct. |
runtime/ishtar.vm/runtime/io/IshtarThreading.cs , .../TaskScheduler.cs |
Introduced structs and methods for thread and task management using LibUV. |
runtime/ishtar.vm/runtime/vm/RuntimeIshtarMethod.cs |
Added ForceSetAsAsync() method to RuntimeIshtarMethod struct. |
test/ishtar_collections_test/UnitTest1.cs |
Added method CreateNativeQueueAndFill for testing native queue operations. |
vein_lang.sln , vein_lang.sln.DotSettings |
Updated solution file with new project type and added new project for ishtar.vm.libuv . |
sequenceDiagram
participant User
participant VirtualMachine
participant TaskScheduler
participant LibUV
User->>VirtualMachine: Start Method Execution
VirtualMachine->>TaskScheduler: Schedule Task
TaskScheduler->>LibUV: Initialize Event Loop
TaskScheduler->>LibUV: Create Thread
LibUV->>TaskScheduler: Thread Created
TaskScheduler->>VirtualMachine: Task Scheduled
VirtualMachine->>User: Method Execution Completed
In the code where threads now spin,
Async flags and tasks begin,
With libuv's embrace so tight,
Methods flow through day and night.
Concurrent queues and dictionaries too,
A rabbit's dream, all fresh and new. 🐇✨
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?
Summary by CodeRabbit
New Features
NativeConcurrentDictionary
andNativeQueue
implementations.IshtarRawThread
,IshtarTask
,IshtarThread
,IshtarThreading
, andTaskScheduler
for advanced threading and task management.Enhancements
Async
flag to method options, expanding method flag capabilities.Bug Fixes
Tests
Chores