-
Notifications
You must be signed in to change notification settings - Fork 80
Feat/improving ffi #924
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: pharo-12
Are you sure you want to change the base?
Feat/improving ffi #924
Conversation
tesonep
commented
Mar 1, 2025
- Adding new Bytecode to perform SameThread callouts
- Having a JIT implementation of the bytecode
- Support for optimizations on specific set of signatures
- Supported in ARM32, ARM64 and X86_64
…ject. It pins the object if it is not pinned. - Adding JIT version of this primitive - Adding tests
- Adding a new bytecode for SameThreadCallout - Adding general JIT implementation using a trampoline - Adding Tests Based in the work and experiments of Juan Ignacio Bianchi
- Fixing issues with callbacks - Annotating the bytecode correctly - Starting to add support for optimizations
…be externalized before
…calized variables (they leave the interpreter)
- Improving optimized code - Adding tests - Fixing types
- Implementing some optimizations - Implementing it for ARM32 / ARM64 / X64 (SysV & WIN) - Supporting flags to optimize the code
…Finder works correctly for the tests
- Adding tests
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Beautiful ninja magic 🥷 🪄 ✨
👏 👏 👏 👏
@@ -411,7 +454,7 @@ MLLocalizationTestCase >> testExternalPerform [ | |||
|
|||
printedString := String streamContents: [ :str | cast prettyPrintOn: str ]. | |||
|
|||
self assert: printedString equals: | |||
self assert: printedString trimBoth trimBoth equals: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
More more trimBoth
:P
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This class should be in Slang-Tests
package (now it is not running on the CI). I though that I already moved it 🤔
^ self new | ||
codeGenerator: aCodeGenerator; | ||
codeGenerator: aCodeGenerator | ||
yourself |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this ok?
InstructionClient >> sameThreadCallout: literalIndex [ | ||
|
||
|
||
] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
???
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
😱
] | ||
|
||
{ #category : 'tests - primitiveGetAddressOfOOPPinningIfNeeded' } | ||
VMPrimitiveTest >> testPrimitiveGetAddressOfOOPPinningIfNeededReturnsAddressAndPinsIfObjectIsNotPinned [ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If not pinned this primitive pin it on the interpreter but not on the JIT, right?
…he code compaction and the movements of machine code methods