ffi 1.13.0-java → 1.15.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/CHANGELOG.md +75 -0
- data/Gemfile +1 -4
- data/README.md +10 -2
- data/Rakefile +23 -23
- data/ffi.gemspec +1 -1
- data/lib/ffi.rb +2 -2
- data/lib/ffi/abstract_memory.rb +44 -0
- data/lib/ffi/autopointer.rb +1 -1
- data/lib/ffi/ffi.rb +1 -0
- data/lib/ffi/io.rb +3 -3
- data/lib/ffi/library.rb +1 -1
- data/lib/ffi/managedstruct.rb +2 -2
- data/lib/ffi/platform.rb +20 -7
- data/lib/ffi/platform/aarch64-darwin/types.conf +130 -0
- data/lib/ffi/platform/aarch64-openbsd/types.conf +134 -0
- data/lib/ffi/platform/powerpc64le-linux/types.conf +100 -0
- data/lib/ffi/platform/riscv64-linux/types.conf +104 -0
- data/lib/ffi/platform/x86_64-dragonflybsd/types.conf +4 -22
- data/lib/ffi/platform/x86_64-haiku/types.conf +117 -0
- data/lib/ffi/platform/x86_64-msys/types.conf +119 -0
- data/lib/ffi/pointer.rb +2 -2
- data/lib/ffi/variadic.rb +1 -10
- data/lib/ffi/version.rb +1 -1
- data/rakelib/ffi_gem_helper.rb +65 -0
- metadata +11 -9
- metadata.gz.sig +0 -0
- data/.appveyor.yml +0 -30
- data/.github/workflows/ci.yml +0 -64
- data/.gitignore +0 -25
- data/.gitmodules +0 -4
- data/.travis.yml +0 -58
- data/.yardopts +0 -5
@@ -0,0 +1,119 @@
|
|
1
|
+
rbx.platform.typedef.*addr_t = char
|
2
|
+
rbx.platform.typedef.__ULong = uint
|
3
|
+
rbx.platform.typedef.__blkcnt_t = long
|
4
|
+
rbx.platform.typedef.__blksize_t = int
|
5
|
+
rbx.platform.typedef.__clock_t = ulong
|
6
|
+
rbx.platform.typedef.__clockid_t = ulong
|
7
|
+
rbx.platform.typedef.__cpu_mask = ulong
|
8
|
+
rbx.platform.typedef.__dev_t = uint
|
9
|
+
rbx.platform.typedef.__fsblkcnt_t = ulong
|
10
|
+
rbx.platform.typedef.__fsfilcnt_t = ulong
|
11
|
+
rbx.platform.typedef.__gid_t = uint
|
12
|
+
rbx.platform.typedef.__id_t = uint
|
13
|
+
rbx.platform.typedef.__ino_t = ulong
|
14
|
+
rbx.platform.typedef.__int32_t = int
|
15
|
+
rbx.platform.typedef.__int64_t = long
|
16
|
+
rbx.platform.typedef.__int8_t = char
|
17
|
+
rbx.platform.typedef.__int_least32_t = int
|
18
|
+
rbx.platform.typedef.__int_least64_t = long
|
19
|
+
rbx.platform.typedef.__int_least8_t = char
|
20
|
+
rbx.platform.typedef.__intmax_t = long
|
21
|
+
rbx.platform.typedef.__intptr_t = long
|
22
|
+
rbx.platform.typedef.__key_t = long_long
|
23
|
+
rbx.platform.typedef.__loff_t = long_long
|
24
|
+
rbx.platform.typedef.__mode_t = uint
|
25
|
+
rbx.platform.typedef.__nl_item = int
|
26
|
+
rbx.platform.typedef.__nlink_t = ushort
|
27
|
+
rbx.platform.typedef.__off_t = long
|
28
|
+
rbx.platform.typedef.__pid_t = int
|
29
|
+
rbx.platform.typedef.__sigset_t = ulong
|
30
|
+
rbx.platform.typedef.__size_t = ulong
|
31
|
+
rbx.platform.typedef.__socklen_t = int
|
32
|
+
rbx.platform.typedef.__suseconds_t = long
|
33
|
+
rbx.platform.typedef.__time_t = long
|
34
|
+
rbx.platform.typedef.__timer_t = ulong
|
35
|
+
rbx.platform.typedef.__uid_t = uint
|
36
|
+
rbx.platform.typedef.__uint32_t = uint
|
37
|
+
rbx.platform.typedef.__uint64_t = ulong
|
38
|
+
rbx.platform.typedef.__uint8_t = uchar
|
39
|
+
rbx.platform.typedef.__uint_least32_t = uint
|
40
|
+
rbx.platform.typedef.__uint_least64_t = ulong
|
41
|
+
rbx.platform.typedef.__uint_least8_t = uchar
|
42
|
+
rbx.platform.typedef.__uintmax_t = ulong
|
43
|
+
rbx.platform.typedef.__uintptr_t = ulong
|
44
|
+
rbx.platform.typedef.__useconds_t = ulong
|
45
|
+
rbx.platform.typedef._fpos64_t = long_long
|
46
|
+
rbx.platform.typedef._fpos_t = long
|
47
|
+
rbx.platform.typedef._off64_t = long_long
|
48
|
+
rbx.platform.typedef._off_t = long
|
49
|
+
rbx.platform.typedef.blkcnt_t = long
|
50
|
+
rbx.platform.typedef.blksize_t = int
|
51
|
+
rbx.platform.typedef.caddr_t = string
|
52
|
+
rbx.platform.typedef.clock_t = ulong
|
53
|
+
rbx.platform.typedef.clockid_t = ulong
|
54
|
+
rbx.platform.typedef.daddr_t = long
|
55
|
+
rbx.platform.typedef.dev_t = uint
|
56
|
+
rbx.platform.typedef.fd_mask = ulong
|
57
|
+
rbx.platform.typedef.fsblkcnt_t = ulong
|
58
|
+
rbx.platform.typedef.fsfilcnt_t = ulong
|
59
|
+
rbx.platform.typedef.gid_t = uint
|
60
|
+
rbx.platform.typedef.id_t = uint
|
61
|
+
rbx.platform.typedef.in_addr_t = uint
|
62
|
+
rbx.platform.typedef.ino_t = ulong
|
63
|
+
rbx.platform.typedef.int32_t = int
|
64
|
+
rbx.platform.typedef.int64_t = long
|
65
|
+
rbx.platform.typedef.int8_t = char
|
66
|
+
rbx.platform.typedef.int_fast16_t = long
|
67
|
+
rbx.platform.typedef.int_fast32_t = long
|
68
|
+
rbx.platform.typedef.int_fast64_t = long
|
69
|
+
rbx.platform.typedef.int_fast8_t = char
|
70
|
+
rbx.platform.typedef.int_least32_t = int
|
71
|
+
rbx.platform.typedef.int_least64_t = long
|
72
|
+
rbx.platform.typedef.int_least8_t = char
|
73
|
+
rbx.platform.typedef.intmax_t = long
|
74
|
+
rbx.platform.typedef.intptr_t = long
|
75
|
+
rbx.platform.typedef.key_t = long_long
|
76
|
+
rbx.platform.typedef.loff_t = long_long
|
77
|
+
rbx.platform.typedef.mode_t = uint
|
78
|
+
rbx.platform.typedef.nlink_t = ushort
|
79
|
+
rbx.platform.typedef.off_t = long
|
80
|
+
rbx.platform.typedef.pid_t = int
|
81
|
+
rbx.platform.typedef.ptrdiff_t = long
|
82
|
+
rbx.platform.typedef.register_t = long
|
83
|
+
rbx.platform.typedef.rlim_t = ulong
|
84
|
+
rbx.platform.typedef.sbintime_t = long
|
85
|
+
rbx.platform.typedef.sig_atomic_t = int
|
86
|
+
rbx.platform.typedef.sigset_t = ulong
|
87
|
+
rbx.platform.typedef.size_t = ulong
|
88
|
+
rbx.platform.typedef.socklen_t = int
|
89
|
+
rbx.platform.typedef.suseconds_t = long
|
90
|
+
rbx.platform.typedef.time_t = long
|
91
|
+
rbx.platform.typedef.timer_t = ulong
|
92
|
+
rbx.platform.typedef.u_char = uchar
|
93
|
+
rbx.platform.typedef.u_int = uint
|
94
|
+
rbx.platform.typedef.u_int32_t = uint
|
95
|
+
rbx.platform.typedef.u_int64_t = ulong
|
96
|
+
rbx.platform.typedef.u_int8_t = uchar
|
97
|
+
rbx.platform.typedef.u_long = ulong
|
98
|
+
rbx.platform.typedef.u_register_t = ulong
|
99
|
+
rbx.platform.typedef.u_short = ushort
|
100
|
+
rbx.platform.typedef.uid_t = uint
|
101
|
+
rbx.platform.typedef.uint = uint
|
102
|
+
rbx.platform.typedef.uint32_t = uint
|
103
|
+
rbx.platform.typedef.uint64_t = ulong
|
104
|
+
rbx.platform.typedef.uint8_t = uchar
|
105
|
+
rbx.platform.typedef.uint_fast16_t = ulong
|
106
|
+
rbx.platform.typedef.uint_fast32_t = ulong
|
107
|
+
rbx.platform.typedef.uint_fast64_t = ulong
|
108
|
+
rbx.platform.typedef.uint_fast8_t = uchar
|
109
|
+
rbx.platform.typedef.uint_least32_t = uint
|
110
|
+
rbx.platform.typedef.uint_least64_t = ulong
|
111
|
+
rbx.platform.typedef.uint_least8_t = uchar
|
112
|
+
rbx.platform.typedef.uintmax_t = ulong
|
113
|
+
rbx.platform.typedef.uintptr_t = ulong
|
114
|
+
rbx.platform.typedef.ulong = ulong
|
115
|
+
rbx.platform.typedef.useconds_t = ulong
|
116
|
+
rbx.platform.typedef.ushort = ushort
|
117
|
+
rbx.platform.typedef.vm_offset_t = ulong
|
118
|
+
rbx.platform.typedef.vm_size_t = ulong
|
119
|
+
rbx.platform.typedef.wint_t = uint
|
data/lib/ffi/pointer.rb
CHANGED
@@ -52,7 +52,7 @@ module FFI
|
|
52
52
|
|
53
53
|
# @param [nil,Numeric] len length of string to return
|
54
54
|
# @return [String]
|
55
|
-
# Read pointer's contents as a string, or the first +len+ bytes of the
|
55
|
+
# Read pointer's contents as a string, or the first +len+ bytes of the
|
56
56
|
# equivalent string if +len+ is not +nil+.
|
57
57
|
def read_string(len=nil)
|
58
58
|
if len
|
@@ -96,7 +96,7 @@ module FFI
|
|
96
96
|
# @param [String] str string to write
|
97
97
|
# @param [Numeric] len length of string to return
|
98
98
|
# @return [self]
|
99
|
-
# Write +str+ in pointer's contents, or first +len+ bytes if
|
99
|
+
# Write +str+ in pointer's contents, or first +len+ bytes if
|
100
100
|
# +len+ is not +nil+.
|
101
101
|
def write_string(str, len=nil)
|
102
102
|
len = str.bytesize unless len
|
data/lib/ffi/variadic.rb
CHANGED
@@ -31,16 +31,7 @@
|
|
31
31
|
#
|
32
32
|
|
33
33
|
module FFI
|
34
|
-
class VariadicInvoker
|
35
|
-
def init(arg_types, type_map)
|
36
|
-
@fixed = Array.new
|
37
|
-
@type_map = type_map
|
38
|
-
arg_types.each_with_index do |type, i|
|
39
|
-
@fixed << type unless type == Type::VARARGS
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
|
34
|
+
class VariadicInvoker
|
44
35
|
def call(*args, &block)
|
45
36
|
param_types = Array.new(@fixed)
|
46
37
|
param_values = Array.new
|
data/lib/ffi/version.rb
CHANGED
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'bundler'
|
2
|
+
require 'bundler/gem_helper'
|
3
|
+
|
4
|
+
class FfiGemHelper < Bundler::GemHelper
|
5
|
+
attr_accessor :cross_platforms
|
6
|
+
|
7
|
+
def install
|
8
|
+
super
|
9
|
+
|
10
|
+
task "release:guard_clean" => ["release:update_history"]
|
11
|
+
|
12
|
+
task "release:update_history" do
|
13
|
+
update_history
|
14
|
+
end
|
15
|
+
|
16
|
+
task "release:rubygem_push" => ["gem:windows", "gem:java"]
|
17
|
+
end
|
18
|
+
|
19
|
+
def hfile
|
20
|
+
"CHANGELOG.md"
|
21
|
+
end
|
22
|
+
|
23
|
+
def headline
|
24
|
+
'([^\w]*)(\d+\.\d+\.\d+(?:\.\w+)?)([^\w]+)([2Y][0Y][0-9Y][0-9Y]-[0-1M][0-9M]-[0-3D][0-9D])([^\w]*|$)'
|
25
|
+
end
|
26
|
+
|
27
|
+
def reldate
|
28
|
+
Time.now.strftime("%Y-%m-%d")
|
29
|
+
end
|
30
|
+
|
31
|
+
def update_history
|
32
|
+
hin = File.read(hfile)
|
33
|
+
hout = hin.sub(/#{headline}/) do
|
34
|
+
raise "#{hfile} isn't up-to-date for version #{version}" unless $2==version.to_s
|
35
|
+
$1 + $2 + $3 + reldate + $5
|
36
|
+
end
|
37
|
+
if hout != hin
|
38
|
+
Bundler.ui.confirm "Updating #{hfile} for release."
|
39
|
+
File.write(hfile, hout)
|
40
|
+
Rake::FileUtilsExt.sh "git", "commit", hfile, "-m", "Update release date in #{hfile}"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def tag_version
|
45
|
+
Bundler.ui.confirm "Tag release with annotation:"
|
46
|
+
m = File.read(hfile).match(/(?<annotation>#{headline}.*?)#{headline}/m) || raise("Unable to find release notes in #{hfile}")
|
47
|
+
Bundler.ui.info(m[:annotation].gsub(/^/, " "))
|
48
|
+
IO.popen(["git", "tag", "--file=-", version_tag], "w") do |fd|
|
49
|
+
fd.write m[:annotation]
|
50
|
+
end
|
51
|
+
yield if block_given?
|
52
|
+
rescue
|
53
|
+
Bundler.ui.error "Untagging #{version_tag} due to error."
|
54
|
+
sh_with_code "git tag -d #{version_tag}"
|
55
|
+
raise
|
56
|
+
end
|
57
|
+
|
58
|
+
def rubygem_push(path)
|
59
|
+
cross_platforms.each do |ruby_platform|
|
60
|
+
super(path.gsub(/\.gem\z/, "-#{ruby_platform}.gem"))
|
61
|
+
end
|
62
|
+
super(path.gsub(/\.gem\z/, "-java.gem"))
|
63
|
+
super(path)
|
64
|
+
end
|
65
|
+
end
|
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: 1.
|
4
|
+
version: 1.15.0
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Wayne Meissner
|
@@ -29,7 +29,7 @@ cert_chain:
|
|
29
29
|
+QvsIa+rEKMYbn0IActnL2SCNlGcttHDcH0AkctmwmAN2r6LTInUBCJoahaIeIXU
|
30
30
|
RE1H1QyCW3SV93CTTKaR2A==
|
31
31
|
-----END CERTIFICATE-----
|
32
|
-
date:
|
32
|
+
date: 2021-03-05 00:00:00.000000000 Z
|
33
33
|
dependencies:
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: rake
|
@@ -107,12 +107,6 @@ executables: []
|
|
107
107
|
extensions: []
|
108
108
|
extra_rdoc_files: []
|
109
109
|
files:
|
110
|
-
- ".appveyor.yml"
|
111
|
-
- ".github/workflows/ci.yml"
|
112
|
-
- ".gitignore"
|
113
|
-
- ".gitmodules"
|
114
|
-
- ".travis.yml"
|
115
|
-
- ".yardopts"
|
116
110
|
- CHANGELOG.md
|
117
111
|
- COPYING
|
118
112
|
- Gemfile
|
@@ -122,6 +116,7 @@ files:
|
|
122
116
|
- Rakefile
|
123
117
|
- ffi.gemspec
|
124
118
|
- lib/ffi.rb
|
119
|
+
- lib/ffi/abstract_memory.rb
|
125
120
|
- lib/ffi/autopointer.rb
|
126
121
|
- lib/ffi/buffer.rb
|
127
122
|
- lib/ffi/callback.rb
|
@@ -134,9 +129,11 @@ files:
|
|
134
129
|
- lib/ffi/managedstruct.rb
|
135
130
|
- lib/ffi/memorypointer.rb
|
136
131
|
- lib/ffi/platform.rb
|
132
|
+
- lib/ffi/platform/aarch64-darwin/types.conf
|
137
133
|
- lib/ffi/platform/aarch64-freebsd/types.conf
|
138
134
|
- lib/ffi/platform/aarch64-freebsd12/types.conf
|
139
135
|
- lib/ffi/platform/aarch64-linux/types.conf
|
136
|
+
- lib/ffi/platform/aarch64-openbsd/types.conf
|
140
137
|
- lib/ffi/platform/arm-freebsd/types.conf
|
141
138
|
- lib/ffi/platform/arm-freebsd12/types.conf
|
142
139
|
- lib/ffi/platform/arm-linux/types.conf
|
@@ -164,6 +161,8 @@ files:
|
|
164
161
|
- lib/ffi/platform/powerpc-linux/types.conf
|
165
162
|
- lib/ffi/platform/powerpc-openbsd/types.conf
|
166
163
|
- lib/ffi/platform/powerpc64-linux/types.conf
|
164
|
+
- lib/ffi/platform/powerpc64le-linux/types.conf
|
165
|
+
- lib/ffi/platform/riscv64-linux/types.conf
|
167
166
|
- lib/ffi/platform/s390-linux/types.conf
|
168
167
|
- lib/ffi/platform/s390x-linux/types.conf
|
169
168
|
- lib/ffi/platform/sparc-linux/types.conf
|
@@ -176,7 +175,9 @@ files:
|
|
176
175
|
- lib/ffi/platform/x86_64-dragonflybsd/types.conf
|
177
176
|
- lib/ffi/platform/x86_64-freebsd/types.conf
|
178
177
|
- lib/ffi/platform/x86_64-freebsd12/types.conf
|
178
|
+
- lib/ffi/platform/x86_64-haiku/types.conf
|
179
179
|
- lib/ffi/platform/x86_64-linux/types.conf
|
180
|
+
- lib/ffi/platform/x86_64-msys/types.conf
|
180
181
|
- lib/ffi/platform/x86_64-netbsd/types.conf
|
181
182
|
- lib/ffi/platform/x86_64-openbsd/types.conf
|
182
183
|
- lib/ffi/platform/x86_64-solaris/types.conf
|
@@ -195,6 +196,7 @@ files:
|
|
195
196
|
- lib/ffi/union.rb
|
196
197
|
- lib/ffi/variadic.rb
|
197
198
|
- lib/ffi/version.rb
|
199
|
+
- rakelib/ffi_gem_helper.rb
|
198
200
|
- samples/getlogin.rb
|
199
201
|
- samples/getpid.rb
|
200
202
|
- samples/gettimeofday.rb
|
@@ -229,7 +231,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
229
231
|
- !ruby/object:Gem::Version
|
230
232
|
version: '0'
|
231
233
|
requirements: []
|
232
|
-
rubygems_version: 3.
|
234
|
+
rubygems_version: 3.2.3
|
233
235
|
signing_key:
|
234
236
|
specification_version: 4
|
235
237
|
summary: Ruby FFI
|
metadata.gz.sig
CHANGED
Binary file
|
data/.appveyor.yml
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
install:
|
2
|
-
- SET PATH=C:\Ruby%RUBYVER%\bin;%PATH%
|
3
|
-
- SET RAKEOPT=-rdevkit
|
4
|
-
- ps: |
|
5
|
-
if ($env:RUBYVER -like "*head*") {
|
6
|
-
$(new-object net.webclient).DownloadFile("https://github.com/oneclick/rubyinstaller2/releases/download/rubyinstaller-head/rubyinstaller-$env:RUBYVER.exe", "$pwd/ruby-setup.exe")
|
7
|
-
cmd /c ruby-setup.exe /verysilent /dir=C:/Ruby$env:RUBYVER
|
8
|
-
}
|
9
|
-
- ridk version
|
10
|
-
- gem --version
|
11
|
-
- gem install bundler --quiet --no-document
|
12
|
-
- bundle install
|
13
|
-
# Update to libffi-3.3 since Appveyor version fails on LongDouble specs
|
14
|
-
- ridk exec pacman --sync --refresh --needed --noconfirm mingw-w64-x86_64-libffi mingw-w64-i686-libffi
|
15
|
-
build: off
|
16
|
-
build_script:
|
17
|
-
- bundle exec rake libffi compile -- %EXTCONFOPTS% || bundle exec rake compile -- %EXTCONFOPTS%
|
18
|
-
test_script:
|
19
|
-
- bundle exec rake test
|
20
|
-
- bundle exec rake types_conf && git --no-pager diff
|
21
|
-
environment:
|
22
|
-
matrix:
|
23
|
-
- RUBYVER: "head-x64"
|
24
|
-
EXTCONFOPTS: "--disable-system-libffi"
|
25
|
-
- RUBYVER: 24
|
26
|
-
EXTCONFOPTS: "--disable-system-libffi"
|
27
|
-
- RUBYVER: 25-x64
|
28
|
-
EXTCONFOPTS: "--enable-system-libffi"
|
29
|
-
- RUBYVER: 26
|
30
|
-
EXTCONFOPTS: "--enable-system-libffi"
|
data/.github/workflows/ci.yml
DELETED
@@ -1,64 +0,0 @@
|
|
1
|
-
name: CI
|
2
|
-
on: [push, pull_request]
|
3
|
-
jobs:
|
4
|
-
system-libffi:
|
5
|
-
# Run on latest MRI with explicit selection of system or builtin libffi
|
6
|
-
strategy:
|
7
|
-
fail-fast: false
|
8
|
-
matrix:
|
9
|
-
os: [ ubuntu, macos, windows ]
|
10
|
-
extconfopts: [ --disable-system-libffi, --enable-system-libffi ]
|
11
|
-
runs-on: ${{ matrix.os }}-latest
|
12
|
-
steps:
|
13
|
-
- uses: actions/checkout@v2
|
14
|
-
- uses: ruby/setup-ruby@v1
|
15
|
-
with:
|
16
|
-
ruby-version: 2.7
|
17
|
-
|
18
|
-
- run: brew install automake libffi pkg-config
|
19
|
-
if: matrix.os == 'macos'
|
20
|
-
- run: ridk exec pacman --sync --refresh --needed --noconfirm mingw-w64-x86_64-libffi
|
21
|
-
if: matrix.os == 'windows' && matrix.extconfopts == '--enable-system-libffi'
|
22
|
-
|
23
|
-
- run: bundle install
|
24
|
-
- run: bundle exec rake libffi
|
25
|
-
- run: bundle exec rake compile -- ${{ matrix.extconfopts }}
|
26
|
-
env:
|
27
|
-
# work around misconfiguration of libffi on MacOS with homebrew
|
28
|
-
PKG_CONFIG_PATH: ${{ env.PKG_CONFIG_PATH }}:/usr/local/opt/libffi/lib/pkgconfig
|
29
|
-
- run: bundle exec rake test
|
30
|
-
- run: bundle exec rake types_conf && git --no-pager diff
|
31
|
-
|
32
|
-
specs:
|
33
|
-
# Run all specs on all ruby implementations
|
34
|
-
# Use automatic libffi selection on MRI
|
35
|
-
strategy:
|
36
|
-
fail-fast: false
|
37
|
-
matrix:
|
38
|
-
os: [ ubuntu, macos, windows ]
|
39
|
-
ruby: [ 2.3, 2.4, 2.5, 2.6, 2.7, ruby-head, truffleruby-head ]
|
40
|
-
exclude:
|
41
|
-
- os: windows
|
42
|
-
ruby: truffleruby-head
|
43
|
-
- os: windows
|
44
|
-
ruby: 2.3 # compilation fails
|
45
|
-
runs-on: ${{ matrix.os }}-latest
|
46
|
-
steps:
|
47
|
-
- uses: actions/checkout@v2
|
48
|
-
- uses: ruby/setup-ruby@v1
|
49
|
-
with:
|
50
|
-
ruby-version: ${{ matrix.ruby }}
|
51
|
-
|
52
|
-
- run: brew install automake
|
53
|
-
if: matrix.os == 'macos'
|
54
|
-
|
55
|
-
- run: bundle install
|
56
|
-
- run: bundle exec rake libffi
|
57
|
-
- run: bundle exec rake compile
|
58
|
-
|
59
|
-
- run: bundle exec rake test
|
60
|
-
|
61
|
-
- run: bundle exec rake bench:all
|
62
|
-
if: matrix.ruby != 'truffleruby-head'
|
63
|
-
env:
|
64
|
-
ITER: 10
|
data/.gitignore
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
doc/
|
2
|
-
bin/
|
3
|
-
.yardoc
|
4
|
-
*.orig
|
5
|
-
nbproject/private
|
6
|
-
pkg
|
7
|
-
*.orig
|
8
|
-
*.rej
|
9
|
-
*.patch
|
10
|
-
*.diff
|
11
|
-
build
|
12
|
-
*.so
|
13
|
-
*.[oa]
|
14
|
-
core
|
15
|
-
lib/ffi/types.conf
|
16
|
-
lib/ffi_c.bundle
|
17
|
-
lib/ffi_c.so
|
18
|
-
vendor
|
19
|
-
.bundle
|
20
|
-
Gemfile.lock
|
21
|
-
types_log
|
22
|
-
*.gem
|
23
|
-
embed-test.log
|
24
|
-
spec/ffi/embed-test/ext/Makefile
|
25
|
-
spec/ffi/embed-test/ext/embed_test.bundle
|
data/.gitmodules
DELETED
data/.travis.yml
DELETED
@@ -1,58 +0,0 @@
|
|
1
|
-
dist: trusty
|
2
|
-
group: beta
|
3
|
-
language: ruby
|
4
|
-
git:
|
5
|
-
submodules: false
|
6
|
-
|
7
|
-
script:
|
8
|
-
- bundle exec rake libffi
|
9
|
-
- bundle exec rake compile
|
10
|
-
- bundle exec rake test
|
11
|
-
- |
|
12
|
-
if [[ $(ruby -v) != *truffleruby* ]]; then
|
13
|
-
ITER=10 bundle exec rake bench:all
|
14
|
-
fi
|
15
|
-
- bundle exec rake types_conf && git --no-pager diff
|
16
|
-
os:
|
17
|
-
- linux
|
18
|
-
- osx
|
19
|
-
rvm:
|
20
|
-
- 2.3.8
|
21
|
-
- 2.4.6
|
22
|
-
- 2.5.5
|
23
|
-
- 2.6.5
|
24
|
-
- 2.7.0
|
25
|
-
- ruby-head
|
26
|
-
- truffleruby-head
|
27
|
-
|
28
|
-
env:
|
29
|
-
- CC=gcc
|
30
|
-
- CC=clang
|
31
|
-
matrix:
|
32
|
-
allow_failures:
|
33
|
-
- os: osx
|
34
|
-
rvm: ruby-head
|
35
|
-
- os: osx
|
36
|
-
rvm: 2.3.8
|
37
|
-
- os: linux
|
38
|
-
rvm: ruby-head
|
39
|
-
include:
|
40
|
-
- name: powerpc
|
41
|
-
language: generic
|
42
|
-
before_install: |
|
43
|
-
docker run --rm --privileged multiarch/qemu-user-static:register --reset &&
|
44
|
-
docker build --rm -t ffi-powerpc -f spec/env/Dockerfile.powerpc .
|
45
|
-
script: |
|
46
|
-
docker run --rm -t -v `pwd`:/ffi ffi-powerpc
|
47
|
-
- name: armhf
|
48
|
-
language: generic
|
49
|
-
before_install: |
|
50
|
-
docker run --rm --privileged multiarch/qemu-user-static:register --reset &&
|
51
|
-
docker build --rm -t ffi-armhf -f spec/env/Dockerfile.armhf .
|
52
|
-
script: |
|
53
|
-
docker run --rm -t -v `pwd`:/ffi ffi-armhf
|
54
|
-
exclude:
|
55
|
-
- os: osx
|
56
|
-
rvm: truffleruby-head
|
57
|
-
after_failure:
|
58
|
-
- "find build -name mkmf.log | xargs cat"
|