summaryrefslogtreecommitdiff
path: root/ext/fiddle/fiddle.gemspec
AgeCommit message (Collapse)Author
2024-10-16Use JRuby implementation for TruffleRuby (#149)Sutou Kouhei
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>
2024-10-10Import JRuby implementation (#147)Sutou Kouhei
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
2024-08-23[ruby/fiddle] Removed libffi patchs for old RubyHiroshi SHIBATA
(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>
2024-02-08[ruby/fiddle] Set changelog_uri gem metadataMasato Nakamura
(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
2022-10-07Add --with-libffi-source-dir feature and removed --enable-bundled-libffi ↵Hiroshi SHIBATA
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>
2021-09-05[ruby/fiddle] Use test-unit gem (https://github.com/ruby/fiddle/pull/69)Hiroshi SHIBATA
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
2021-07-13[ruby/fiddle] Update required_ruby_version ↵Nobuyoshi Nakada
(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
2020-12-11Import fiddle-1.0.4 (#3860)Kenta Murata
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>
2020-11-18[ruby/fiddle] Remove needless workaroundSutou Kouhei
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
2020-11-18[ruby/fiddle] Add workaround for ruby head for mingwSutou Kouhei
https://github.com/ruby/fiddle/commit/bb227c206d Notes: Merged: https://github.com/ruby/ruby/pull/3780
2020-11-18[ruby/fiddle] Use msys2_mingw_dependenciesSutou Kouhei
https://github.com/ruby/fiddle/commit/fee175a8ff Notes: Merged: https://github.com/ruby/ruby/pull/3780
2020-11-18[ruby/fiddle] Add a "pinning" reference (#44)Aaron Patterson
* 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
2020-08-18Update the license for the default gems to dual licensesHiroshi SHIBATA
2020-06-27[ruby/fiddle] Support MSWIN (#43)Sutou Kouhei
https://github.com/ruby/fiddle/commit/f16e7ff6e0 Notes: Merged: https://github.com/ruby/ruby/pull/3265
2020-05-24ext/fiddle/fiddle.gemspec: avoid require lib/fiddle/version.rbYusuke Endoh
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.
2020-05-23[ruby/fiddle] Update file listSutou Kouhei
https://github.com/ruby/fiddle/commit/b04cb92d7b Notes: Merged: https://github.com/ruby/ruby/pull/3068
2020-05-23[ruby/fiddle] Add Fiddle::VERSIONSutou Kouhei
https://github.com/ruby/fiddle/commit/9dcf64c096 Notes: Merged: https://github.com/ruby/ruby/pull/3068
2020-05-23[ruby/fiddle] Add missing spec.extensionsSutou Kouhei
https://github.com/ruby/fiddle/commit/2ce36b1fdc Notes: Merged: https://github.com/ruby/ruby/pull/3068
2017-12-06Bump fiddle-1.0.0 for released version.hsbt
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61053 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-09-12Merge fiddle-1.0.0.beta2 from upstream.hsbt
* 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
2017-06-19Make string literal to frozen object on gemspec of defulte gems.hsbt
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
2017-04-05Added initial gemspec for ruby/fiddle.hsbt
[Feature #13403][ruby-core:80577] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58255 b2dd03c8-39d4-4d8f-98ff-823fe69b080e