Import TruffleRuby implementation #148
Draft
+719
−8
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix GH-145
lib/fiddle/truffleruby.rb is based on
https://github.com/oracle/truffleruby/blob/master/lib/truffle/truffle/fiddle_backend.rb
.
Here are changes for it:
Fiddle::Types::VARIADIC
Fiddle::Types::CONST_STRING
Fiddle::Types::BOOL
Fiddle::ALIGN_BOOL
Fiddle::SIZEOF_BOOL
Fiddle::SIZEOF_CONST_STRING
Fiddle::Types::*
but alsoSymbol
like:int
Fiddle::Error
as base the error classFiddle::Pointer.malloc {}
Fiddle::Pointer
Fiddle.free(#to_int)
Fiddle::Function(need_gvl:)
but it's just ignoredFiddle::Function#initialize
: Add an argument validationFiddle::Function#initialize
: Keep arguments as instance variables forgetters
Fiddle::Handle.sym
Fiddle::Handle.[]
Fiddle::Handle.sym_defined?
Fiddle::Handle#sym
Fiddle::Handle#[]
Fiddle::Handle#sym_defined?
Fiddle::Pointer.malloc
Fiddle::Pointer.to_ptr(#to_ptr)
Fiddle::Pointer#free=
Fiddle::Pointer#freed?
Fiddle::Pointer#call_free
Fiddle::Pointer#to_i
Fiddle::Pointer#to_int
Fiddle::Pointer#ptr
Fiddle::Pointer#+@
Fiddle::Pointer#ref
Fiddle::Pointer#-@
Fiddle::Pointer#null?
Fiddle::Pointer#to_s
Fiddle::Pointer#to_str
Fiddle::Pointer#inspect
Fiddle::Pointer#<=>
Fiddle::Pointer#==
Fiddle::Pointer#eql?
Fiddle::Pointer#+
Fiddle::Pointer#-
Fiddle::Pointer#[]=
Fiddle::Pointer#size
Fiddle::Pointer#size=
Fiddle::ClearedReferenceError
Fiddle::Pinned
Fiddle::NULL
Some features are still "not implemented". So there are some "omit"s
for TruffleRuby in tests.