rcee_precompiled 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1433303a861ccdca59314c39762f30c11817241057c5deceb1fd90a192119c2f
4
- data.tar.gz: aa0690709c7d77f1517714e323d1cbd627febebbb29952b1c9e1ecf3e8e3bfd5
3
+ metadata.gz: 75e95371c9254f1e4e13c647e6d9bd9a7bf58969568ca3d0423b32dd2509ddb8
4
+ data.tar.gz: d1d43c4c1ef4cd9b1b823cc46cc760b8b882d944cbc5cbb8d646533d8405a74a
5
5
  SHA512:
6
- metadata.gz: 62422e6214c2d6f7c025a7474a46a8fe42d3244125f23b9e1b44c7a4546540860ea0e7a58892dd97627f9854882f87da8e384f540be269966d2676541c170215
7
- data.tar.gz: 1ea4fe394233270e1f362b9849189e400726379448472275ce547614d4db5c76e0532ea0e00d807dd50012319623342ce97ae69408237c8690746eae2b3f9301
6
+ metadata.gz: fd010aa61f60be476bab9b8ad1b0e5bf1f2d13f9fd5a4fee50906451f235e2ca015d08e40160b24d5221bd2bf4052b935a58bb1e8619eb1ba3baa5274821dafb
7
+ data.tar.gz: bdbb4d096318095eaadaf013e0e00b3f7fd3c7100cdec8a25c7d6e26e2ee3341964de504d2fb47563a5cf63cfb50a3fe708bdf8017c3f1658ad4ee31b5d18cd5
data/Gemfile CHANGED
@@ -8,6 +8,6 @@ gemspec
8
8
  gem "rake", "~> 13.0"
9
9
 
10
10
  gem "rake-compiler"
11
- gem "rake-compiler-dock"
11
+ gem "rake-compiler-dock", "~> 1.2.1"
12
12
 
13
13
  gem "minitest", "~> 5.0"
data/README.md CHANGED
@@ -26,8 +26,16 @@ This is really powerful stuff, and once we assume that we can cross-compile reli
26
26
  First, we need to add some features to our `Rake::ExtensionTask` in `Rakefile`:
27
27
 
28
28
  ``` ruby
29
- cross_rubies = ["3.0.0", "2.7.0", "2.6.0", "2.5.0"]
30
- cross_platforms = ["x64-mingw32", "x86_64-linux", "x86_64-darwin", "arm64-darwin"]
29
+ cross_rubies = ["3.1.0", "3.0.0", "2.7.0", "2.6.0"]
30
+ cross_platforms = [
31
+ "x64-mingw32",
32
+ "x64-mingw-ucrt",
33
+ "x86-linux",
34
+ "x86_64-linux",
35
+ "aarch64-linux",
36
+ "x86_64-darwin",
37
+ "arm64-darwin",
38
+ ]
31
39
  ENV["RUBY_CC_VERSION"] = cross_rubies.join(":")
32
40
 
33
41
  Rake::ExtensionTask.new("precompiled", rcee_precompiled_spec) do |ext|
@@ -120,14 +128,14 @@ We have one more small change we'll need to make to how the extension is require
120
128
  lib
121
129
  └── rcee
122
130
  ├── precompiled
123
- │   ├── 2.5
124
- │   │   └── precompiled.so
125
131
  │   ├── 2.6
126
132
  │   │   └── precompiled.so
127
133
  │   ├── 2.7
128
134
  │   │   └── precompiled.so
129
135
  │   ├── 3.0
130
136
  │   │   └── precompiled.so
137
+ │   ├── 3.1
138
+ │   │   └── precompiled.so
131
139
  │   └── version.rb
132
140
  └── precompiled.rb
133
141
  ```
@@ -176,7 +184,7 @@ This strategy isn't perfect. Remember what I said earlier, that a compiled C ext
176
184
  - the machine architecture (e.g., x86_64)
177
185
  - the system libraries
178
186
 
179
- The precompiled strategy mostly takes care of the first two, but there are still edge cases for system libraries. The big gotcha is that linux libc is not the same as linux musl, and we've had to work around this a few times in Nokogiri. Note also that we're unable to easily test `musl` systems on Github Actions because of limitations in the `download-artifact` action.
187
+ The precompiled strategy mostly takes care of the first two, but there are still edge cases for system libraries. The big gotcha is that linux libc is not the same as linux musl, and we've had to work around this a few times in Nokogiri.
180
188
 
181
189
  I'm positive that there are more edge cases that will be found as users add more platforms and as more gems start precompiling. I'm willing to bet money that you can break this by setting some Ruby compile-time flags on your system. I'm honestly surprised it works as well as it has. (Worth noting: the `sassc` gem stopped shipping native gems for linux because of the musl incompatibilities.)
182
190
 
data/Rakefile CHANGED
@@ -6,8 +6,17 @@ require "rake/testtask"
6
6
  require "rake/extensiontask"
7
7
  require "rake_compiler_dock"
8
8
 
9
- cross_rubies = ["3.0.0", "2.7.0", "2.6.0", "2.5.0"]
10
- cross_platforms = ["x64-mingw32", "x86_64-linux", "x86_64-darwin", "arm64-darwin"]
9
+ cross_rubies = ["3.1.0", "3.0.0", "2.7.0", "2.6.0"]
10
+ cross_platforms = [
11
+ "aarch64-linux",
12
+ "arm-linux",
13
+ "arm64-darwin",
14
+ "x64-mingw-ucrt",
15
+ "x64-mingw32",
16
+ "x86-linux",
17
+ "x86_64-darwin",
18
+ "x86_64-linux",
19
+ ]
11
20
  ENV["RUBY_CC_VERSION"] = cross_rubies.join(":")
12
21
 
13
22
  rcee_precompiled_spec = Bundler.load_gemspec("rcee_precompiled.gemspec")
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RCEE
4
4
  module Precompiled
5
- VERSION = "0.3.0"
5
+ VERSION = "0.4.0"
6
6
  end
7
7
  end
@@ -15,7 +15,7 @@ Gem::Specification.new do |spec|
15
15
  spec.summary = "Example gem demonstrating a basic C extension."
16
16
  spec.description = "Part of a project to explain how Ruby C extensions work."
17
17
  spec.homepage = "https://github.com/flavorjones/ruby-c-extensions-explained"
18
- spec.required_ruby_version = ">= 2.5.0"
18
+ spec.required_ruby_version = ">= 2.6.0"
19
19
  spec.license = "MIT"
20
20
 
21
21
  # Specify which files should be added to the gem when it is released.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rcee_precompiled
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Dalessio
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-11-08 00:00:00.000000000 Z
11
+ date: 2022-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mini_portile2
@@ -55,14 +55,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
55
55
  requirements:
56
56
  - - ">="
57
57
  - !ruby/object:Gem::Version
58
- version: 2.5.0
58
+ version: 2.6.0
59
59
  required_rubygems_version: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - ">="
62
62
  - !ruby/object:Gem::Version
63
63
  version: '0'
64
64
  requirements: []
65
- rubygems_version: 3.2.22
65
+ rubygems_version: 3.3.5
66
66
  signing_key:
67
67
  specification_version: 4
68
68
  summary: Example gem demonstrating a basic C extension.