rcee_precompiled 0.3.0-x86_64-linux → 0.4.0-x86_64-linux

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: 5261c6c48fb6b1025adc0390308aaf8c975735476d0bc3c43a941444762de992
4
- data.tar.gz: 9c6b37821d80801f440716cceb12434e2beaf35e891f38fab622d3470df4bb65
3
+ metadata.gz: 4a3ef03296e0f261f8deb18faec170739ba9f4061add6d19b563801916862541
4
+ data.tar.gz: '03533039e35794b8271f5e5b047f9e9c37f6c0bf8347ade78291e1ed9cf7e1ed'
5
5
  SHA512:
6
- metadata.gz: a54d29615c7c6ac381ae0b98024a6c90133302223a7f9f1687509227cd5feb7d2251764662e61a7945ba84d1c290e2c089c4c469682aa85e08f9e3fc89adccec
7
- data.tar.gz: fecf4625695af77b0904dea142c3dec7860574b70724e78cccbe2e7083dc1d5b7d35e4bb03d482f30be47d4c031e73c380fbb7268d6415e4b713c7f683a489ee
6
+ metadata.gz: 9e3253212bc7337527c20a2445206c6ee9e3d0ade03484f0d22fe2463c20d0c4235eb034209c2ece9d8eda34313f311c09f9614e83e9aafa239065e0b6f1c610
7
+ data.tar.gz: 6c50f19b55210d66a1c50396ec1209b6c882a5300e96c6341bd4e2f5425a81d638f7485b571eb11af0157e47701c13568cca0956ef33dd85badf8b21a9ecd66f
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: x86_64-linux
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,17 +25,17 @@ 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
31
+ - lib/rcee/precompiled/3.1/precompiled.so
32
32
  - lib/rcee/precompiled/version.rb
33
33
  - rcee_precompiled.gemspec
34
34
  homepage: https://github.com/flavorjones/ruby-c-extensions-explained
35
35
  licenses:
36
36
  - MIT
37
37
  metadata: {}
38
- post_install_message:
38
+ post_install_message:
39
39
  rdoc_options: []
40
40
  require_paths:
41
41
  - lib
@@ -43,18 +43,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: '2.5'
46
+ version: '2.6'
47
47
  - - "<"
48
48
  - !ruby/object:Gem::Version
49
- version: 3.1.dev
49
+ version: 3.2.dev
50
50
  required_rubygems_version: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  requirements: []
56
- rubygems_version: 3.2.30
57
- signing_key:
56
+ rubygems_version: 3.3.4
57
+ signing_key:
58
58
  specification_version: 4
59
59
  summary: Example gem demonstrating a basic C extension.
60
60
  test_files: []