rcee_precompiled 0.3.0-x86_64-linux → 0.4.0-x86_64-linux
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
- data/Gemfile +1 -1
- data/README.md +13 -5
- data/Rakefile +11 -2
- data/lib/rcee/precompiled/3.1/precompiled.so +0 -0
- data/lib/rcee/precompiled/version.rb +1 -1
- data/rcee_precompiled.gemspec +1 -1
- metadata +9 -9
- data/lib/rcee/precompiled/2.5/precompiled.so +0 -0
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 4a3ef03296e0f261f8deb18faec170739ba9f4061add6d19b563801916862541
         | 
| 4 | 
            +
              data.tar.gz: '03533039e35794b8271f5e5b047f9e9c37f6c0bf8347ade78291e1ed9cf7e1ed'
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 9e3253212bc7337527c20a2445206c6ee9e3d0ade03484f0d22fe2463c20d0c4235eb034209c2ece9d8eda34313f311c09f9614e83e9aafa239065e0b6f1c610
         | 
| 7 | 
            +
              data.tar.gz: 6c50f19b55210d66a1c50396ec1209b6c882a5300e96c6341bd4e2f5425a81d638f7485b571eb11af0157e47701c13568cca0956ef33dd85badf8b21a9ecd66f
         | 
    
        data/Gemfile
    CHANGED
    
    
    
        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. | 
| 30 | 
            -
            cross_platforms = [ | 
| 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. | 
| 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. | 
| 10 | 
            -
            cross_platforms = [ | 
| 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")
         | 
| Binary file | 
    
        data/rcee_precompiled.gemspec
    CHANGED
    
    | @@ -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. | 
| 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. | 
| 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:  | 
| 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. | 
| 46 | 
            +
                  version: '2.6'
         | 
| 47 47 | 
             
              - - "<"
         | 
| 48 48 | 
             
                - !ruby/object:Gem::Version
         | 
| 49 | 
            -
                  version: 3. | 
| 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. | 
| 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: []
         | 
| Binary file |