rcee_precompiled 0.3.0-x64-mingw32 → 0.4.0-x64-mingw32

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: e522487dd90054bbf854665b626b4bdaa1394365493cc4ac6c6e6795358d4038
4
- data.tar.gz: 543833fa552e66deedae625148821af9eead12eb151bd85a2ed9d808a02d840d
3
+ metadata.gz: ea6f3cd835a5bed241848335027c8a8cf022833ae7026da43029743ad5f91880
4
+ data.tar.gz: a766319f7e9bccd4ec17ece36b32d6fb7e4b66bb7ab0d507ac152895d5d3d5ba
5
5
  SHA512:
6
- metadata.gz: 10f7d02ab0fe278d6076018e0257abe8379622edfe0771866ffb8d05ee442ba4ac9c1f0f70230b2e53f7761f6fb4ecaab0633bdc83d24b5cd220b63c3a54eace
7
- data.tar.gz: 1a036c3b3ddc5accd9c1529cc78eecf7454a16401db065b9385e6e1a05ee991396f6aa9391eed82d1f7b9f5f057391d4156de62cbf28bd55f59c4db963b28b0b
6
+ metadata.gz: 75ee4cf1972cbba08b4a0907bb2e0dbfe1161a6a94d9be354fc430823c8600b45e42a460c996a820e665b5c6deaadb7f223dd096ebbcba46f4c24642932c7ccb
7
+ data.tar.gz: e70418704048aa9f987acb84d84181798fd133bec1335ef3846a78310f0521438a6a84c2f8de81dc477dcace06715b4967c1acba6484b0d2225c13296f149ec6
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: x64-mingw32
6
6
  authors:
7
7
  - Mike Dalessio
8
- autorequire:
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
  description: Part of a project to explain how Ruby C extensions work.
14
14
  email:
@@ -25,7 +25,6 @@ files:
25
25
  - ext/precompiled/precompiled.c
26
26
  - ext/precompiled/precompiled.h
27
27
  - lib/rcee/precompiled.rb
28
- - lib/rcee/precompiled/2.5/precompiled.so
29
28
  - lib/rcee/precompiled/2.6/precompiled.so
30
29
  - lib/rcee/precompiled/2.7/precompiled.so
31
30
  - lib/rcee/precompiled/3.0/precompiled.so
@@ -35,7 +34,7 @@ homepage: https://github.com/flavorjones/ruby-c-extensions-explained
35
34
  licenses:
36
35
  - MIT
37
36
  metadata: {}
38
- post_install_message:
37
+ post_install_message:
39
38
  rdoc_options: []
40
39
  require_paths:
41
40
  - lib
@@ -43,7 +42,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
43
42
  requirements:
44
43
  - - ">="
45
44
  - !ruby/object:Gem::Version
46
- version: '2.5'
45
+ version: '2.6'
47
46
  - - "<"
48
47
  - !ruby/object:Gem::Version
49
48
  version: 3.1.dev
@@ -53,8 +52,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
53
52
  - !ruby/object:Gem::Version
54
53
  version: '0'
55
54
  requirements: []
56
- rubygems_version: 3.2.30
57
- signing_key:
55
+ rubygems_version: 3.3.4
56
+ signing_key:
58
57
  specification_version: 4
59
58
  summary: Example gem demonstrating a basic C extension.
60
59
  test_files: []