| Age | Commit message (Collapse) | Author |
|
Fix GH-145
Rename `lib/fiddle/jruby.rb` to `lib/fiddle/ffi_backend.rb` as a generic
ffi gem API based implementation.
JRuby and TruffleRuby use `lib/fiddle/ffi_backend.rb`.
---------
Co-authored-by: Benoit Daloze <eregontp@gmail.com>
|
|
Fix GH-104
lib/fiddle/jruby.rb is based on
https://github.com/jruby/jruby/blob/master/lib/ruby/stdlib/fiddle/jruby.rb
.
Here are changes for it:
* Move `Fiddle::TYPE_*` to `Fiddle::Types::*`
* Add `Fiddle::Types::VARIADIC`
* Add `Fiddle::Types::CONST_STRING`
* Add `Fiddle::Types::BOOL`
* Add `Fiddle::Types::INT8_T`
* Add `Fiddle::Types::UINT8_T`
* Add `Fiddle::Types::INT16_T`
* Add `Fiddle::Types::UINT16_T`
* Add `Fiddle::Types::INT32_T`
* Add `Fiddle::Types::UINT32_T`
* Add `Fiddle::Types::INT64_T`
* Add `Fiddle::Types::UINT64_T`
* Add more `Fiddle::ALIGN_*` for the above new `Fiddle::Types::*`
* Add more `Fiddle::SIZEOF_*` for the above new `Fiddle::Types::*`
* Add support for specifying type as not only `Fiddle::Types::*` but
also `Symbol` like `:int`
* Add support for variable size arguments in `Fiddle::Function`
* Add `Fiddle::Closure#free`
* Add `Fiddle::Closure#freed?`
* Add `Fiddle::Error` as base the error class
* Add `Fiddle::Pointer#call_free` and stop using `FFI::AutoPointer` in
`Fiddle::Pointer`
* Add support for `Fiddle::Pointer.malloc {}` `Fiddle::Pointer`
* Add support for `Fiddle::Pointer#free=`
* Add `Fiddle::Pointer#freed?`
* Use binary string not C string for `Fiddle::Pointer#[]`
* Add `Fiddle::Handle.sym_defined?`
* Add `Fiddle::Handle#sym_defined?`
* Add `Fiddle::Handle::DEFAULT`
* Add `Fiddle::ClearedReferenceError`
* Add no-op `Fiddle::Pinned`
Some features are still "not implemented". So there are some "omit"s for
JRuby in tests.
Notes:
Merged: https://github.com/ruby/ruby/pull/11860
|
|
(https://github.com/ruby/fiddle/pull/143)
Pick
https://github.com/ruby/ruby/commit/92865d8760e22dc5035a67e636fab3fbd7a77a26
from `ruby/ruby` repo.
---------
https://github.com/ruby/fiddle/commit/aad5a3bc79
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
|
(https://github.com/ruby/fiddle/pull/138)
See https://guides.rubygems.org/specification-reference/#metadata for changelog_uri metadata.
https://github.com/ruby/fiddle/commit/0bd8e96adc
|
|
option. (#113)
https://bugs.ruby-lang.org/issues/18571
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
Co-authored-by: Sutou Kouhei <kou@clear-code.com>
|
|
https://github.com/ruby/fiddle/commit/e08c4c635e
Co-authored-by: Sutou Kouhei <kou@clear-code.com>
Notes:
Merged: https://github.com/ruby/ruby/pull/4810
|
|
(https://github.com/ruby/fiddle/pull/85)
Drop supports for old versions, keeping 2.5 as CI supports it for
now.
https://github.com/ruby/fiddle/commit/90634e7c55
|
|
I don't use tool/sync_default_gem.rb because the last sync was incomplete.
Co-authored-by: Hiroshi SHIBATA <hsbt@ruby-lang.org>
Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>
Co-authored-by: sinisterchipmunk <sinisterchipmunk@gmail.com>
Co-authored-by: Sutou Kouhei <kou@clear-code.com>
Notes:
Merged-By: mrkn <mrkn@ruby-lang.org>
|
|
It's fixed in upstream.
https://github.com/MSP-Greg/ruby-loco/issues/4
https://github.com/ruby/fiddle/commit/2ae0ff4934
Notes:
Merged: https://github.com/ruby/ruby/pull/3780
|
|
https://github.com/ruby/fiddle/commit/bb227c206d
Notes:
Merged: https://github.com/ruby/ruby/pull/3780
|
|
https://github.com/ruby/fiddle/commit/fee175a8ff
Notes:
Merged: https://github.com/ruby/ruby/pull/3780
|
|
* Add a "pinning" reference
A `Fiddle::Pinned` objects will prevent the objects they point to from
moving. This is useful in the case where you need to pass a reference
to a C extension that keeps the address in a global and needs the
address to be stable.
For example:
```ruby
class Foo
A = "hi" # this is an embedded string
some_c_function A # A might move!
end
```
If `A` moves, then the underlying string buffer may also move.
`Fiddle::Pinned` will prevent the object from moving:
```ruby
class Foo
A = "hi" # this is an embedded string
A_pinner = Fiddle::Pinned.new(A) # :nodoc:
some_c_function A # A can't move because of `Fiddle::Pinned`
end
```
This is a similar strategy to what Graal uses:
https://www.graalvm.org/sdk/javadoc/org/graalvm/nativeimage/PinnedObject.html#getObject--
* rename global to match exception name
* Introduce generic Fiddle::Error and rearrange error classes
Fiddle::Error is the generic exception base class for Fiddle exceptions.
This commit introduces the class and rearranges Fiddle exceptions to
inherit from it.
https://github.com/ruby/fiddle/commit/ac52d00223
Notes:
Merged: https://github.com/ruby/ruby/pull/3780
|
|
|
|
https://github.com/ruby/fiddle/commit/f16e7ff6e0
Notes:
Merged: https://github.com/ruby/ruby/pull/3265
|
|
It loads `ext/fiddle/lib/fiddle/version.rb`, which causes constant
redefinition warning:
http://rubyci.s3.amazonaws.com/ubuntu2004/ruby-master/log/20200523T153003Z.log.html.gz
```
[ 6317/20193] TestDefaultGems#test_validate_gemspec/home/chkbuild/chkbuild/tmp/build/20200523T153003Z/ruby/ext/fiddle/lib/fiddle/version.rb:2: warning: already initialized constant Fiddle::VERSION
/home/chkbuild/chkbuild/tmp/build/20200523T153003Z/ruby/.ext/common/fiddle/version.rb:2: warning: previous definition of VERSION was here
= 0.16 s
```
This changeset read the version by manual parsing hack which is also
used in stringio and zlib.
|
|
https://github.com/ruby/fiddle/commit/b04cb92d7b
Notes:
Merged: https://github.com/ruby/ruby/pull/3068
|
|
https://github.com/ruby/fiddle/commit/9dcf64c096
Notes:
Merged: https://github.com/ruby/ruby/pull/3068
|
|
https://github.com/ruby/fiddle/commit/2ce36b1fdc
Notes:
Merged: https://github.com/ruby/ruby/pull/3068
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61053 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* ext/fiddle/closure.c: use directly declaration for standalone gem
without internal.h.
* Specify frozen string literal is true.
* Update gemspec configuration for release version.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59854 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
Added following gemspecs.
* extensions: date, dbm, etc, fiddle, gdbm, sdbm, stringio, strscan, zlib
* pure ruby libraries: cmath, csv, fileutils, scanf, webrick
psych and rdoc is out of scope of this commit. I will merge after
upstream was change to `frozen_string_literal: true`.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59115 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
[Feature #13403][ruby-core:80577]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58255 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|