fiddle 1.0.0.beta2 → 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +72 -3
- data/Rakefile +4 -5
- data/bin/downloader.rb +331 -0
- data/bin/extlibs.rb +262 -0
- data/ext/fiddle/closure.c +5 -4
- data/ext/fiddle/conversions.c +205 -16
- data/ext/fiddle/conversions.h +14 -4
- data/ext/fiddle/depend +85 -0
- data/ext/fiddle/extconf.rb +60 -29
- data/ext/fiddle/extlibs +10 -2
- data/ext/fiddle/fiddle.c +133 -34
- data/ext/fiddle/fiddle.h +96 -32
- data/ext/fiddle/function.c +261 -93
- data/ext/fiddle/handle.c +10 -12
- data/ext/fiddle/memory_view.c +254 -0
- data/ext/fiddle/pinned.c +123 -0
- data/ext/fiddle/pointer.c +147 -24
- data/ext/fiddle/win32/fficonfig.h +0 -0
- data/ext/fiddle/win32/libffi-config.rb +1 -1
- data/ext/fiddle/win32/libffi.mk.tmpl +0 -0
- data/fiddle.gemspec +50 -5
- data/lib/fiddle.rb +3 -1
- data/lib/fiddle/cparser.rb +93 -25
- data/lib/fiddle/function.rb +5 -0
- data/lib/fiddle/import.rb +11 -9
- data/lib/fiddle/pack.rb +14 -7
- data/lib/fiddle/struct.rb +267 -43
- data/lib/fiddle/value.rb +18 -9
- data/lib/fiddle/version.rb +3 -0
- metadata +18 -15
- data/.gitignore +0 -13
- data/.travis.yml +0 -5
- data/Gemfile +0 -4
- data/bin/console +0 -14
- data/bin/setup +0 -8
data/lib/fiddle/value.rb
CHANGED
@@ -13,10 +13,13 @@ module Fiddle
|
|
13
13
|
[val].pack("i!").unpack("I!")[0]
|
14
14
|
when TYPE_LONG
|
15
15
|
[val].pack("l!").unpack("L!")[0]
|
16
|
-
when TYPE_LONG_LONG
|
17
|
-
[val].pack("q").unpack("Q")[0]
|
18
16
|
else
|
19
|
-
|
17
|
+
if defined?(TYPE_LONG_LONG) and
|
18
|
+
ty.abs == TYPE_LONG_LONG
|
19
|
+
[val].pack("q").unpack("Q")[0]
|
20
|
+
else
|
21
|
+
val
|
22
|
+
end
|
20
23
|
end
|
21
24
|
end
|
22
25
|
|
@@ -30,10 +33,13 @@ module Fiddle
|
|
30
33
|
[val].pack("I!").unpack("i!")[0]
|
31
34
|
when TYPE_LONG
|
32
35
|
[val].pack("L!").unpack("l!")[0]
|
33
|
-
when TYPE_LONG_LONG
|
34
|
-
[val].pack("Q").unpack("q")[0]
|
35
36
|
else
|
36
|
-
|
37
|
+
if defined?(TYPE_LONG_LONG) and
|
38
|
+
ty.abs == TYPE_LONG_LONG
|
39
|
+
[val].pack("Q").unpack("q")[0]
|
40
|
+
else
|
41
|
+
val
|
42
|
+
end
|
37
43
|
end
|
38
44
|
end
|
39
45
|
|
@@ -75,10 +81,13 @@ module Fiddle
|
|
75
81
|
case SIZEOF_VOIDP
|
76
82
|
when SIZEOF_LONG
|
77
83
|
return [arg].pack("p").unpack("l!")[0]
|
78
|
-
when SIZEOF_LONG_LONG
|
79
|
-
return [arg].pack("p").unpack("q")[0]
|
80
84
|
else
|
81
|
-
|
85
|
+
if defined?(SIZEOF_LONG_LONG) and
|
86
|
+
SIZEOF_VOIDP == SIZEOF_LONG_LONG
|
87
|
+
return [arg].pack("p").unpack("q")[0]
|
88
|
+
else
|
89
|
+
raise(RuntimeError, "sizeof(void*)?")
|
90
|
+
end
|
82
91
|
end
|
83
92
|
end
|
84
93
|
when Float, Integer
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fiddle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aaron Patterson
|
8
8
|
- SHIBATA Hiroshi
|
9
9
|
autorequire:
|
10
|
-
bindir:
|
10
|
+
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2020-12-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -58,21 +58,20 @@ email:
|
|
58
58
|
- aaron@tenderlovemaking.com
|
59
59
|
- hsbt@ruby-lang.org
|
60
60
|
executables: []
|
61
|
-
extensions:
|
61
|
+
extensions:
|
62
|
+
- ext/fiddle/extconf.rb
|
62
63
|
extra_rdoc_files: []
|
63
64
|
files:
|
64
|
-
- ".gitignore"
|
65
|
-
- ".travis.yml"
|
66
|
-
- Gemfile
|
67
65
|
- LICENSE.txt
|
68
66
|
- README.md
|
69
67
|
- Rakefile
|
70
|
-
- bin/
|
71
|
-
- bin/
|
68
|
+
- bin/downloader.rb
|
69
|
+
- bin/extlibs.rb
|
72
70
|
- ext/fiddle/closure.c
|
73
71
|
- ext/fiddle/closure.h
|
74
72
|
- ext/fiddle/conversions.c
|
75
73
|
- ext/fiddle/conversions.h
|
74
|
+
- ext/fiddle/depend
|
76
75
|
- ext/fiddle/extconf.rb
|
77
76
|
- ext/fiddle/extlibs
|
78
77
|
- ext/fiddle/fiddle.c
|
@@ -80,6 +79,8 @@ files:
|
|
80
79
|
- ext/fiddle/function.c
|
81
80
|
- ext/fiddle/function.h
|
82
81
|
- ext/fiddle/handle.c
|
82
|
+
- ext/fiddle/memory_view.c
|
83
|
+
- ext/fiddle/pinned.c
|
83
84
|
- ext/fiddle/pointer.c
|
84
85
|
- ext/fiddle/win32/fficonfig.h
|
85
86
|
- ext/fiddle/win32/libffi-3.2.1-mswin.patch
|
@@ -95,10 +96,13 @@ files:
|
|
95
96
|
- lib/fiddle/struct.rb
|
96
97
|
- lib/fiddle/types.rb
|
97
98
|
- lib/fiddle/value.rb
|
99
|
+
- lib/fiddle/version.rb
|
98
100
|
homepage: https://github.com/ruby/fiddle
|
99
101
|
licenses:
|
102
|
+
- Ruby
|
100
103
|
- BSD-2-Clause
|
101
|
-
metadata:
|
104
|
+
metadata:
|
105
|
+
msys2_mingw_dependencies: libffi
|
102
106
|
post_install_message:
|
103
107
|
rdoc_options: []
|
104
108
|
require_paths:
|
@@ -107,15 +111,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
107
111
|
requirements:
|
108
112
|
- - ">="
|
109
113
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
114
|
+
version: 2.3.0
|
111
115
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
112
116
|
requirements:
|
113
|
-
- - "
|
117
|
+
- - ">="
|
114
118
|
- !ruby/object:Gem::Version
|
115
|
-
version:
|
119
|
+
version: '0'
|
116
120
|
requirements: []
|
117
|
-
|
118
|
-
rubygems_version: 2.6.13
|
121
|
+
rubygems_version: 3.1.4
|
119
122
|
signing_key:
|
120
123
|
specification_version: 4
|
121
124
|
summary: A libffi wrapper for Ruby.
|
data/.gitignore
DELETED
data/.travis.yml
DELETED
data/Gemfile
DELETED
data/bin/console
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require "bundler/setup"
|
4
|
-
require "fiddle"
|
5
|
-
|
6
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
-
# with your gem easier. You can also use a different console, if you like.
|
8
|
-
|
9
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
-
# require "pry"
|
11
|
-
# Pry.start
|
12
|
-
|
13
|
-
require "irb"
|
14
|
-
IRB.start(__FILE__)
|