ffi 0.3.5 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of ffi might be problematic. Click here for more details.
- data/README.rdoc +51 -1
- data/Rakefile +34 -26
- data/ext/ffi_c/AbstractMemory.c +73 -70
- data/ext/ffi_c/AbstractMemory.h +8 -4
- data/ext/ffi_c/AutoPointer.c +8 -9
- data/ext/ffi_c/AutoPointer.h +2 -2
- data/ext/ffi_c/Buffer.c +19 -20
- data/ext/ffi_c/Callback.c +85 -33
- data/ext/ffi_c/Callback.h +11 -5
- data/ext/ffi_c/{NativeLibrary.c → DynamicLibrary.c} +83 -16
- data/ext/ffi_c/{NativeLibrary.h → DynamicLibrary.h} +1 -1
- data/ext/ffi_c/Invoker.c +148 -192
- data/ext/ffi_c/LastError.c +135 -0
- data/ext/ffi_c/LastError.h +18 -0
- data/ext/ffi_c/MemoryPointer.c +26 -19
- data/ext/ffi_c/MemoryPointer.h +3 -3
- data/ext/ffi_c/NullPointer.c +49 -47
- data/ext/ffi_c/Platform.c +9 -10
- data/ext/ffi_c/Platform.h +1 -1
- data/ext/ffi_c/Pointer.c +52 -21
- data/ext/ffi_c/Pointer.h +8 -6
- data/ext/ffi_c/Struct.c +70 -61
- data/ext/ffi_c/Struct.h +2 -2
- data/ext/ffi_c/Type.c +230 -0
- data/ext/ffi_c/Type.h +28 -0
- data/ext/ffi_c/Types.c +47 -6
- data/ext/ffi_c/Types.h +8 -2
- data/ext/ffi_c/endian.h +40 -0
- data/ext/ffi_c/extconf.rb +6 -5
- data/ext/ffi_c/ffi.c +20 -43
- data/ext/ffi_c/libffi.bsd.mk +34 -0
- data/ext/ffi_c/libffi.darwin.mk +30 -10
- data/ext/ffi_c/libffi.gnu.mk +29 -0
- data/ext/ffi_c/libffi.mk +4 -2
- data/ext/ffi_c/rbffi.h +6 -8
- data/lib/ffi.rb +10 -1
- data/lib/ffi/autopointer.rb +1 -1
- data/lib/ffi/enum.rb +78 -0
- data/lib/ffi/ffi.rb +5 -6
- data/lib/ffi/io.rb +15 -1
- data/lib/ffi/library.rb +78 -17
- data/lib/ffi/pointer.rb +2 -2
- data/lib/ffi/struct.rb +68 -14
- data/lib/ffi/types.rb +6 -3
- data/lib/ffi/variadic.rb +2 -2
- data/spec/ffi/bool_spec.rb +24 -0
- data/spec/ffi/callback_spec.rb +217 -17
- data/spec/ffi/enum_spec.rb +164 -0
- data/spec/ffi/managed_struct_spec.rb +6 -1
- data/spec/ffi/number_spec.rb +30 -0
- data/spec/ffi/pointer_spec.rb +33 -8
- data/spec/ffi/rbx/memory_pointer_spec.rb +0 -6
- data/spec/ffi/spec_helper.rb +5 -1
- data/spec/ffi/string_spec.rb +65 -4
- data/spec/ffi/struct_callback_spec.rb +41 -0
- data/spec/ffi/struct_initialize_spec.rb +30 -0
- data/spec/ffi/struct_spec.rb +19 -20
- metadata +29 -52
- data/ext/ffi_c/ffi.mk +0 -23
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ffi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wayne Meissner
|
@@ -9,20 +9,16 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-05
|
12
|
+
date: 2009-08-05 00:00:00 +02:00
|
13
13
|
default_executable:
|
14
|
-
dependencies:
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 2.4.2
|
24
|
-
version:
|
25
|
-
description: A Ruby foreign function interface
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: |-
|
17
|
+
Ruby-FFI is a ruby extension for programmatically loading dynamic
|
18
|
+
libraries, binding functions within them, and calling those functions
|
19
|
+
from Ruby code. Moreover, a Ruby-FFI extension works without changes
|
20
|
+
on Ruby and JRuby. Discover why should you write your next extension
|
21
|
+
using Ruby-FFI {here}[http://kenai.com/projects/ruby-ffi/pages/WhyUseFFI].
|
26
22
|
email: wmeissner@gmail.com
|
27
23
|
executables: []
|
28
24
|
|
@@ -31,13 +27,10 @@ extensions:
|
|
31
27
|
- gen/Rakefile
|
32
28
|
extra_rdoc_files:
|
33
29
|
- README.rdoc
|
34
|
-
- lib/ffi
|
35
|
-
- lib/ffi/tools
|
36
30
|
files:
|
37
31
|
- LICENSE
|
38
32
|
- README.rdoc
|
39
33
|
- Rakefile
|
40
|
-
- ext/ffi_c
|
41
34
|
- ext/ffi_c/AbstractMemory.c
|
42
35
|
- ext/ffi_c/AbstractMemory.h
|
43
36
|
- ext/ffi_c/AutoPointer.c
|
@@ -45,11 +38,13 @@ files:
|
|
45
38
|
- ext/ffi_c/Buffer.c
|
46
39
|
- ext/ffi_c/Callback.c
|
47
40
|
- ext/ffi_c/Callback.h
|
41
|
+
- ext/ffi_c/DynamicLibrary.c
|
42
|
+
- ext/ffi_c/DynamicLibrary.h
|
48
43
|
- ext/ffi_c/Invoker.c
|
44
|
+
- ext/ffi_c/LastError.c
|
45
|
+
- ext/ffi_c/LastError.h
|
49
46
|
- ext/ffi_c/MemoryPointer.c
|
50
47
|
- ext/ffi_c/MemoryPointer.h
|
51
|
-
- ext/ffi_c/NativeLibrary.c
|
52
|
-
- ext/ffi_c/NativeLibrary.h
|
53
48
|
- ext/ffi_c/NullPointer.c
|
54
49
|
- ext/ffi_c/Platform.c
|
55
50
|
- ext/ffi_c/Platform.h
|
@@ -57,14 +52,17 @@ files:
|
|
57
52
|
- ext/ffi_c/Pointer.h
|
58
53
|
- ext/ffi_c/Struct.c
|
59
54
|
- ext/ffi_c/Struct.h
|
55
|
+
- ext/ffi_c/Type.c
|
56
|
+
- ext/ffi_c/Type.h
|
60
57
|
- ext/ffi_c/Types.c
|
61
58
|
- ext/ffi_c/Types.h
|
62
59
|
- ext/ffi_c/compat.h
|
60
|
+
- ext/ffi_c/endian.h
|
63
61
|
- ext/ffi_c/extconf.rb
|
64
62
|
- ext/ffi_c/ffi.c
|
65
|
-
- ext/ffi_c/
|
66
|
-
- ext/ffi_c/libffi
|
63
|
+
- ext/ffi_c/libffi.bsd.mk
|
67
64
|
- ext/ffi_c/libffi.darwin.mk
|
65
|
+
- ext/ffi_c/libffi.gnu.mk
|
68
66
|
- ext/ffi_c/libffi.mk
|
69
67
|
- ext/ffi_c/libffi/ChangeLog
|
70
68
|
- ext/ffi_c/libffi/ChangeLog.libffi
|
@@ -84,13 +82,11 @@ files:
|
|
84
82
|
- ext/ffi_c/libffi/configure.ac
|
85
83
|
- ext/ffi_c/libffi/configure.host
|
86
84
|
- ext/ffi_c/libffi/depcomp
|
87
|
-
- ext/ffi_c/libffi/doc
|
88
85
|
- ext/ffi_c/libffi/doc/libffi.info
|
89
86
|
- ext/ffi_c/libffi/doc/libffi.texi
|
90
87
|
- ext/ffi_c/libffi/doc/stamp-vti
|
91
88
|
- ext/ffi_c/libffi/doc/version.texi
|
92
89
|
- ext/ffi_c/libffi/fficonfig.h.in
|
93
|
-
- ext/ffi_c/libffi/include
|
94
90
|
- ext/ffi_c/libffi/include/Makefile.am
|
95
91
|
- ext/ffi_c/libffi/include/Makefile.in
|
96
92
|
- ext/ffi_c/libffi/include/ffi.h.in
|
@@ -103,7 +99,6 @@ files:
|
|
103
99
|
- ext/ffi_c/libffi/ltcf-gcj.sh
|
104
100
|
- ext/ffi_c/libffi/ltconfig
|
105
101
|
- ext/ffi_c/libffi/ltmain.sh
|
106
|
-
- ext/ffi_c/libffi/man
|
107
102
|
- ext/ffi_c/libffi/man/Makefile.am
|
108
103
|
- ext/ffi_c/libffi/man/Makefile.in
|
109
104
|
- ext/ffi_c/libffi/man/ffi.3
|
@@ -112,51 +107,40 @@ files:
|
|
112
107
|
- ext/ffi_c/libffi/mdate-sh
|
113
108
|
- ext/ffi_c/libffi/missing
|
114
109
|
- ext/ffi_c/libffi/mkinstalldirs
|
115
|
-
- ext/ffi_c/libffi/src
|
116
|
-
- ext/ffi_c/libffi/src/alpha
|
117
110
|
- ext/ffi_c/libffi/src/alpha/ffi.c
|
118
111
|
- ext/ffi_c/libffi/src/alpha/ffitarget.h
|
119
112
|
- ext/ffi_c/libffi/src/alpha/osf.S
|
120
|
-
- ext/ffi_c/libffi/src/arm
|
121
113
|
- ext/ffi_c/libffi/src/arm/ffi.c
|
122
114
|
- ext/ffi_c/libffi/src/arm/ffitarget.h
|
123
115
|
- ext/ffi_c/libffi/src/arm/sysv.S
|
124
116
|
- ext/ffi_c/libffi/src/closures.c
|
125
|
-
- ext/ffi_c/libffi/src/cris
|
126
117
|
- ext/ffi_c/libffi/src/cris/ffi.c
|
127
118
|
- ext/ffi_c/libffi/src/cris/ffitarget.h
|
128
119
|
- ext/ffi_c/libffi/src/cris/sysv.S
|
129
120
|
- ext/ffi_c/libffi/src/debug.c
|
130
121
|
- ext/ffi_c/libffi/src/dlmalloc.c
|
131
|
-
- ext/ffi_c/libffi/src/frv
|
132
122
|
- ext/ffi_c/libffi/src/frv/eabi.S
|
133
123
|
- ext/ffi_c/libffi/src/frv/ffi.c
|
134
124
|
- ext/ffi_c/libffi/src/frv/ffitarget.h
|
135
|
-
- ext/ffi_c/libffi/src/ia64
|
136
125
|
- ext/ffi_c/libffi/src/ia64/ffi.c
|
137
126
|
- ext/ffi_c/libffi/src/ia64/ffitarget.h
|
138
127
|
- ext/ffi_c/libffi/src/ia64/ia64_flags.h
|
139
128
|
- ext/ffi_c/libffi/src/ia64/unix.S
|
140
129
|
- ext/ffi_c/libffi/src/java_raw_api.c
|
141
|
-
- ext/ffi_c/libffi/src/m32r
|
142
130
|
- ext/ffi_c/libffi/src/m32r/ffi.c
|
143
131
|
- ext/ffi_c/libffi/src/m32r/ffitarget.h
|
144
132
|
- ext/ffi_c/libffi/src/m32r/sysv.S
|
145
|
-
- ext/ffi_c/libffi/src/m68k
|
146
133
|
- ext/ffi_c/libffi/src/m68k/ffi.c
|
147
134
|
- ext/ffi_c/libffi/src/m68k/ffitarget.h
|
148
135
|
- ext/ffi_c/libffi/src/m68k/sysv.S
|
149
|
-
- ext/ffi_c/libffi/src/mips
|
150
136
|
- ext/ffi_c/libffi/src/mips/ffi.c
|
151
137
|
- ext/ffi_c/libffi/src/mips/ffitarget.h
|
152
138
|
- ext/ffi_c/libffi/src/mips/n32.S
|
153
139
|
- ext/ffi_c/libffi/src/mips/o32.S
|
154
|
-
- ext/ffi_c/libffi/src/pa
|
155
140
|
- ext/ffi_c/libffi/src/pa/ffi.c
|
156
141
|
- ext/ffi_c/libffi/src/pa/ffitarget.h
|
157
142
|
- ext/ffi_c/libffi/src/pa/hpux32.S
|
158
143
|
- ext/ffi_c/libffi/src/pa/linux.S
|
159
|
-
- ext/ffi_c/libffi/src/powerpc
|
160
144
|
- ext/ffi_c/libffi/src/powerpc/aix.S
|
161
145
|
- ext/ffi_c/libffi/src/powerpc/aix_closure.S
|
162
146
|
- ext/ffi_c/libffi/src/powerpc/asm.h
|
@@ -171,25 +155,20 @@ files:
|
|
171
155
|
- ext/ffi_c/libffi/src/powerpc/sysv.S
|
172
156
|
- ext/ffi_c/libffi/src/prep_cif.c
|
173
157
|
- ext/ffi_c/libffi/src/raw_api.c
|
174
|
-
- ext/ffi_c/libffi/src/s390
|
175
158
|
- ext/ffi_c/libffi/src/s390/ffi.c
|
176
159
|
- ext/ffi_c/libffi/src/s390/ffitarget.h
|
177
160
|
- ext/ffi_c/libffi/src/s390/sysv.S
|
178
|
-
- ext/ffi_c/libffi/src/sh
|
179
161
|
- ext/ffi_c/libffi/src/sh/ffi.c
|
180
162
|
- ext/ffi_c/libffi/src/sh/ffitarget.h
|
181
163
|
- ext/ffi_c/libffi/src/sh/sysv.S
|
182
|
-
- ext/ffi_c/libffi/src/sh64
|
183
164
|
- ext/ffi_c/libffi/src/sh64/ffi.c
|
184
165
|
- ext/ffi_c/libffi/src/sh64/ffitarget.h
|
185
166
|
- ext/ffi_c/libffi/src/sh64/sysv.S
|
186
|
-
- ext/ffi_c/libffi/src/sparc
|
187
167
|
- ext/ffi_c/libffi/src/sparc/ffi.c
|
188
168
|
- ext/ffi_c/libffi/src/sparc/ffitarget.h
|
189
169
|
- ext/ffi_c/libffi/src/sparc/v8.S
|
190
170
|
- ext/ffi_c/libffi/src/sparc/v9.S
|
191
171
|
- ext/ffi_c/libffi/src/types.c
|
192
|
-
- ext/ffi_c/libffi/src/x86
|
193
172
|
- ext/ffi_c/libffi/src/x86/darwin.S
|
194
173
|
- ext/ffi_c/libffi/src/x86/darwin64.S
|
195
174
|
- ext/ffi_c/libffi/src/x86/ffi.c
|
@@ -199,16 +178,12 @@ files:
|
|
199
178
|
- ext/ffi_c/libffi/src/x86/sysv.S
|
200
179
|
- ext/ffi_c/libffi/src/x86/unix64.S
|
201
180
|
- ext/ffi_c/libffi/src/x86/win32.S
|
202
|
-
- ext/ffi_c/libffi/testsuite
|
203
181
|
- ext/ffi_c/libffi/testsuite/Makefile.am
|
204
182
|
- ext/ffi_c/libffi/testsuite/Makefile.in
|
205
|
-
- ext/ffi_c/libffi/testsuite/config
|
206
183
|
- ext/ffi_c/libffi/testsuite/config/default.exp
|
207
|
-
- ext/ffi_c/libffi/testsuite/lib
|
208
184
|
- ext/ffi_c/libffi/testsuite/lib/libffi-dg.exp
|
209
185
|
- ext/ffi_c/libffi/testsuite/lib/target-libpath.exp
|
210
186
|
- ext/ffi_c/libffi/testsuite/lib/wrapper.exp
|
211
|
-
- ext/ffi_c/libffi/testsuite/libffi.call
|
212
187
|
- ext/ffi_c/libffi/testsuite/libffi.call/call.exp
|
213
188
|
- ext/ffi_c/libffi/testsuite/libffi.call/closure_fn0.c
|
214
189
|
- ext/ffi_c/libffi/testsuite/libffi.call/closure_fn1.c
|
@@ -315,7 +290,6 @@ files:
|
|
315
290
|
- ext/ffi_c/libffi/testsuite/libffi.call/struct7.c
|
316
291
|
- ext/ffi_c/libffi/testsuite/libffi.call/struct8.c
|
317
292
|
- ext/ffi_c/libffi/testsuite/libffi.call/struct9.c
|
318
|
-
- ext/ffi_c/libffi/testsuite/libffi.special
|
319
293
|
- ext/ffi_c/libffi/testsuite/libffi.special/ffitestcxx.h
|
320
294
|
- ext/ffi_c/libffi/testsuite/libffi.special/special.exp
|
321
295
|
- ext/ffi_c/libffi/testsuite/libffi.special/unwindtest.cc
|
@@ -323,11 +297,11 @@ files:
|
|
323
297
|
- ext/ffi_c/libffi/texinfo.tex
|
324
298
|
- ext/ffi_c/rbffi.h
|
325
299
|
- gen/Rakefile
|
326
|
-
- lib/ffi
|
327
300
|
- lib/ffi.rb
|
328
301
|
- lib/ffi/autopointer.rb
|
329
302
|
- lib/ffi/buffer.rb
|
330
303
|
- lib/ffi/callback.rb
|
304
|
+
- lib/ffi/enum.rb
|
331
305
|
- lib/ffi/errno.rb
|
332
306
|
- lib/ffi/ffi.rb
|
333
307
|
- lib/ffi/io.rb
|
@@ -337,7 +311,6 @@ files:
|
|
337
311
|
- lib/ffi/platform.rb
|
338
312
|
- lib/ffi/pointer.rb
|
339
313
|
- lib/ffi/struct.rb
|
340
|
-
- lib/ffi/tools
|
341
314
|
- lib/ffi/tools/const_generator.rb
|
342
315
|
- lib/ffi/tools/generator.rb
|
343
316
|
- lib/ffi/tools/generator_task.rb
|
@@ -346,21 +319,23 @@ files:
|
|
346
319
|
- lib/ffi/types.rb
|
347
320
|
- lib/ffi/union.rb
|
348
321
|
- lib/ffi/variadic.rb
|
349
|
-
- spec/ffi
|
322
|
+
- spec/ffi/bool_spec.rb
|
350
323
|
- spec/ffi/buffer_spec.rb
|
351
324
|
- spec/ffi/callback_spec.rb
|
325
|
+
- spec/ffi/enum_spec.rb
|
352
326
|
- spec/ffi/errno_spec.rb
|
353
327
|
- spec/ffi/library_spec.rb
|
354
328
|
- spec/ffi/managed_struct_spec.rb
|
355
329
|
- spec/ffi/number_spec.rb
|
356
330
|
- spec/ffi/pointer_spec.rb
|
357
|
-
- spec/ffi/rbx
|
358
331
|
- spec/ffi/rbx/attach_function_spec.rb
|
359
332
|
- spec/ffi/rbx/memory_pointer_spec.rb
|
360
333
|
- spec/ffi/rbx/spec_helper.rb
|
361
334
|
- spec/ffi/rbx/struct_spec.rb
|
362
335
|
- spec/ffi/spec_helper.rb
|
363
336
|
- spec/ffi/string_spec.rb
|
337
|
+
- spec/ffi/struct_callback_spec.rb
|
338
|
+
- spec/ffi/struct_initialize_spec.rb
|
364
339
|
- spec/ffi/struct_spec.rb
|
365
340
|
- spec/ffi/typedef_spec.rb
|
366
341
|
- spec/ffi/union_spec.rb
|
@@ -368,6 +343,8 @@ files:
|
|
368
343
|
- spec/spec.opts
|
369
344
|
has_rdoc: true
|
370
345
|
homepage: http://kenai.com/projects/ruby-ffi
|
346
|
+
licenses: []
|
347
|
+
|
371
348
|
post_install_message:
|
372
349
|
rdoc_options:
|
373
350
|
- -x
|
@@ -392,9 +369,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
392
369
|
requirements: []
|
393
370
|
|
394
371
|
rubyforge_project: ffi
|
395
|
-
rubygems_version: 1.3.
|
372
|
+
rubygems_version: 1.3.4
|
396
373
|
signing_key:
|
397
|
-
specification_version:
|
398
|
-
summary:
|
374
|
+
specification_version: 3
|
375
|
+
summary: Ruby-FFI is a ruby extension for programmatically loading dynamic libraries, binding functions within them, and calling those functions from Ruby code
|
399
376
|
test_files: []
|
400
377
|
|
data/ext/ffi_c/ffi.mk
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
# -*- makefile -*-
|
2
|
-
|
3
|
-
# CFLAGS += -Werror -Wformat
|
4
|
-
INCFLAGS += -I$(BUILD_DIR) -I$(LIBFFI_BUILD_DIR)/include
|
5
|
-
CPPFLAGS += -I$(BUILD_DIR) -I$(LIBFFI_BUILD_DIR)/include
|
6
|
-
# CPPFLAGS += -mwin32
|
7
|
-
LOCAL_LIBS += $(LIBFFI)
|
8
|
-
# LOCAL_LIBS += -lpthread
|
9
|
-
|
10
|
-
FFI_CFLAGS = $(FFI_MMAP_EXEC)
|
11
|
-
BUILD_DIR := $(shell pwd)
|
12
|
-
ifeq ($(srcdir),.)
|
13
|
-
LIBFFI_SRC_DIR := $(shell pwd)/$(srcdir)/libffi
|
14
|
-
else
|
15
|
-
LIBFFI_SRC_DIR := $(srcdir)/libffi
|
16
|
-
endif
|
17
|
-
LIBFFI_BUILD_DIR = $(BUILD_DIR)/libffi
|
18
|
-
LIBFFI = $(LIBFFI_BUILD_DIR)/.libs/libffi_convenience.a
|
19
|
-
FFI_CONFIGURE = $(LIBFFI_SRC_DIR)/configure --disable-static \
|
20
|
-
--with-pic=yes --disable-dependency-tracking
|
21
|
-
|
22
|
-
$(OBJS): $(LIBFFI)
|
23
|
-
|