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.

Files changed (59) hide show
  1. data/README.rdoc +51 -1
  2. data/Rakefile +34 -26
  3. data/ext/ffi_c/AbstractMemory.c +73 -70
  4. data/ext/ffi_c/AbstractMemory.h +8 -4
  5. data/ext/ffi_c/AutoPointer.c +8 -9
  6. data/ext/ffi_c/AutoPointer.h +2 -2
  7. data/ext/ffi_c/Buffer.c +19 -20
  8. data/ext/ffi_c/Callback.c +85 -33
  9. data/ext/ffi_c/Callback.h +11 -5
  10. data/ext/ffi_c/{NativeLibrary.c → DynamicLibrary.c} +83 -16
  11. data/ext/ffi_c/{NativeLibrary.h → DynamicLibrary.h} +1 -1
  12. data/ext/ffi_c/Invoker.c +148 -192
  13. data/ext/ffi_c/LastError.c +135 -0
  14. data/ext/ffi_c/LastError.h +18 -0
  15. data/ext/ffi_c/MemoryPointer.c +26 -19
  16. data/ext/ffi_c/MemoryPointer.h +3 -3
  17. data/ext/ffi_c/NullPointer.c +49 -47
  18. data/ext/ffi_c/Platform.c +9 -10
  19. data/ext/ffi_c/Platform.h +1 -1
  20. data/ext/ffi_c/Pointer.c +52 -21
  21. data/ext/ffi_c/Pointer.h +8 -6
  22. data/ext/ffi_c/Struct.c +70 -61
  23. data/ext/ffi_c/Struct.h +2 -2
  24. data/ext/ffi_c/Type.c +230 -0
  25. data/ext/ffi_c/Type.h +28 -0
  26. data/ext/ffi_c/Types.c +47 -6
  27. data/ext/ffi_c/Types.h +8 -2
  28. data/ext/ffi_c/endian.h +40 -0
  29. data/ext/ffi_c/extconf.rb +6 -5
  30. data/ext/ffi_c/ffi.c +20 -43
  31. data/ext/ffi_c/libffi.bsd.mk +34 -0
  32. data/ext/ffi_c/libffi.darwin.mk +30 -10
  33. data/ext/ffi_c/libffi.gnu.mk +29 -0
  34. data/ext/ffi_c/libffi.mk +4 -2
  35. data/ext/ffi_c/rbffi.h +6 -8
  36. data/lib/ffi.rb +10 -1
  37. data/lib/ffi/autopointer.rb +1 -1
  38. data/lib/ffi/enum.rb +78 -0
  39. data/lib/ffi/ffi.rb +5 -6
  40. data/lib/ffi/io.rb +15 -1
  41. data/lib/ffi/library.rb +78 -17
  42. data/lib/ffi/pointer.rb +2 -2
  43. data/lib/ffi/struct.rb +68 -14
  44. data/lib/ffi/types.rb +6 -3
  45. data/lib/ffi/variadic.rb +2 -2
  46. data/spec/ffi/bool_spec.rb +24 -0
  47. data/spec/ffi/callback_spec.rb +217 -17
  48. data/spec/ffi/enum_spec.rb +164 -0
  49. data/spec/ffi/managed_struct_spec.rb +6 -1
  50. data/spec/ffi/number_spec.rb +30 -0
  51. data/spec/ffi/pointer_spec.rb +33 -8
  52. data/spec/ffi/rbx/memory_pointer_spec.rb +0 -6
  53. data/spec/ffi/spec_helper.rb +5 -1
  54. data/spec/ffi/string_spec.rb +65 -4
  55. data/spec/ffi/struct_callback_spec.rb +41 -0
  56. data/spec/ffi/struct_initialize_spec.rb +30 -0
  57. data/spec/ffi/struct_spec.rb +19 -20
  58. metadata +29 -52
  59. 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.3.5
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-08 00:00:00 +10:00
12
+ date: 2009-08-05 00:00:00 +02:00
13
13
  default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: bones
17
- type: :development
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
20
- requirements:
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/ffi.mk
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.1
372
+ rubygems_version: 1.3.4
396
373
  signing_key:
397
- specification_version: 2
398
- summary: A Ruby foreign function interface
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
 
@@ -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
-