Closed 0xF6 closed 1 month ago
The updates span core compiler functionalities, including handling of generics, method compatibility checks, and opcode definitions. Key enhancements involve concatenating and regenerating aliases, defining delegate classes, improving type handling for method arguments, and introducing new opcodes (CALL_SP
, LDFN
). Additionally, version increments, reflection adjustments, and IL generation refinements contribute to a more robust and flexible compilation process.
File Path | Change Summary |
---|---|
compiler/compilation/CompilationTask.cs |
Added steps to concatenate aliasesQueue items and regenerate aliases before proceeding with existing compilation logic |
compiler/compilation/parts/args.cs |
Introduced conditional checks based on method.IsMethodType , modifying generics handling, constraints, and VeinArgumentRef generation |
compiler/compilation/parts/classes.cs |
Added methods like DefineDelegateClass and adjusted LinkClasses and RegenerateAliases for alias handling |
compiler/compilation/parts/methods.cs |
Used constants for constructor method names |
lib/ast/syntax/VeinSyntax.cs |
Adjusted parsing of method bodies by introducing a Positioned() method call |
metadata/db_opcodes.json |
Added new entries for "CALL_SP": 114 and "LDFN": 115 |
metadata/opcodes.def.cs |
Added new opcodes CALL_SP and LDFN to OpCodeValue enum |
metadata/opcodes.list.def.cs |
Updated SetVersion value to 20, added new opcodes CALL_SP and LDFN |
metadata/opcodes.yaml |
Added entries for CALL_SP and LDFN |
metadata/version |
Incremented version number from 18 to 20 |
runtime/common/reflection/VeinClass.cs |
Introduced FindAnyMethods and extended compatibility checks. Removed outdated compatibility check methods |
runtime/common/reflection/VeinMethod.cs |
Added method NotThis , HasCompatibility , and constants for method names. Updated method name checks to use constants |
runtime/common/reflection/VeinTypeCode.cs |
Added TYPE_RAW case to type code mapping |
runtime/ishtar.base/emit/ClassBuilder.cs |
Modified DefineMethod to change returnType parameter to VeinComplexType |
runtime/ishtar.base/emit/ILGenerator.cs |
Introduced handling for new LDFN opcode |
runtime/ishtar.base/emit/MethodBuilder.cs |
Updated returnType parameter type from VeinClass to VeinComplexType in constructor |
runtime/ishtar.base/emit/VeinModuleBuilder.cs |
Added method DefineClass with parent class |
runtime/ishtar.generator/GeneratorContext.cs |
Extensive changes for handling method creation, field resolution, and error handling |
runtime/ishtar.generator/generators/access.cs |
Updated EmitAccess method to call GetTypeCode(ctx) |
runtime/ishtar.generator/generators/call.cs |
Added IsCallingDelegate method |
runtime/ishtar.generator/generators/emitters.cs |
Updated EmitCreateObject method to use constant for constructor method name |
runtime/ishtar.generator/generators/operators.cs |
Added context handling for unary expressions |
runtime/ishtar.generator/generators/types.cs |
Enhanced type code determination to handle different expressions |
In code's vast realm, we weave anew,
With opcodes fresh and constructs, too.
Aliases linked and methods clear,
A rabbit's touch, no bugs to fear.
A poet's heart within our bytes,
We celebrate these new heights! ๐
[!TIP]
Early access features
- OpenAI `gpt-4o` model for reviews and chat. Note: - You can disable early access features from the CodeRabbit UI or by setting `early_access: false` in the CodeRabbit configuration file. - Please join our [Discord Community](https://discord.com/invite/GsXnASn26c) to provide feedback and report issues. - OSS projects are always opted into early access features.
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
CALL_SP
andLDFN
for enhanced operation handling.Bug Fixes
Refactor
Chores
18
to20
.