pyroscope 0.1.0 → 0.3.0
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/LICENSE +202 -0
- data/README.md +56 -2
- data/elflib/rbspy/manylinux.sh +23 -0
- data/elflib/rbspy/pyproject.toml +7 -0
- data/{ext/pyroscope/lib/.gitkeep → elflib/rbspy/rbspy/__init__.py} +0 -0
- data/elflib/rbspy/setup.cfg +22 -0
- data/elflib/rbspy/setup.py +46 -0
- data/elflib/thread_id/manylinux.sh +23 -0
- data/elflib/thread_id/pyproject.toml +7 -0
- data/elflib/thread_id/setup.cfg +22 -0
- data/elflib/thread_id/setup.py +46 -0
- data/elflib/thread_id/thread_id/__init__.py +0 -0
- data/ext/rbspy/Cargo.toml +27 -0
- data/ext/rbspy/Rakefile +164 -0
- data/ext/rbspy/build.rs +12 -0
- data/ext/rbspy/cbindgen.toml +22 -0
- data/ext/rbspy/extconf.rb +11 -0
- data/ext/rbspy/src/lib.rs +168 -0
- data/ext/thread_id/Cargo.toml +20 -0
- data/ext/thread_id/Rakefile +163 -0
- data/ext/thread_id/build.rs +12 -0
- data/ext/thread_id/cbindgen.toml +22 -0
- data/ext/thread_id/extconf.rb +11 -0
- data/ext/thread_id/src/lib.rs +4 -0
- data/lib/pyroscope/version.rb +1 -1
- data/lib/pyroscope.rb +74 -32
- data/pyroscope.gemspec +28 -23
- data/scripts/docker.sh +16 -0
- metadata +43 -58
- data/.gitignore +0 -7
- data/Gemfile +0 -4
- data/Gemfile.lock +0 -48
- data/Rakefile +0 -56
- data/ext/pyroscope/Makefile.example +0 -265
- data/ext/pyroscope/extconf.rb +0 -79
- data/ext/pyroscope/lib/libpyroscope.rbspy.a +0 -0
- data/ext/pyroscope/lib/libpyroscope.rbspy.combo.a +0 -0
- data/ext/pyroscope/lib/librustdeps.a +0 -0
- data/ext/pyroscope/pyroscope.c +0 -87
- data/test.rb +0 -32
    
        metadata
    CHANGED
    
    | @@ -1,51 +1,23 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: pyroscope
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.3.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Pyroscope Team
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2022-06-30 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 | 
            -
              name:  | 
| 15 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 | 
            -
                requirements:
         | 
| 17 | 
            -
                - - ">="
         | 
| 18 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version: '0'
         | 
| 20 | 
            -
              type: :development
         | 
| 21 | 
            -
              prerelease: false
         | 
| 22 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 | 
            -
                requirements:
         | 
| 24 | 
            -
                - - ">="
         | 
| 25 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version: '0'
         | 
| 27 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            -
              name: rake
         | 
| 29 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            -
                requirements:
         | 
| 31 | 
            -
                - - ">="
         | 
| 32 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            -
                    version: '0'
         | 
| 34 | 
            -
              type: :development
         | 
| 35 | 
            -
              prerelease: false
         | 
| 36 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            -
                requirements:
         | 
| 38 | 
            -
                - - ">="
         | 
| 39 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            -
                    version: '0'
         | 
| 41 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            -
              name: rake-compiler
         | 
| 14 | 
            +
              name: ffi
         | 
| 43 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 16 | 
             
                requirements:
         | 
| 45 17 | 
             
                - - ">="
         | 
| 46 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 19 | 
             
                    version: '0'
         | 
| 48 | 
            -
              type: : | 
| 20 | 
            +
              type: :runtime
         | 
| 49 21 | 
             
              prerelease: false
         | 
| 50 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 23 | 
             
                requirements:
         | 
| @@ -53,7 +25,7 @@ dependencies: | |
| 53 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 26 | 
             
                    version: '0'
         | 
| 55 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 56 | 
            -
              name:  | 
| 28 | 
            +
              name: bundler
         | 
| 57 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 30 | 
             
                requirements:
         | 
| 59 31 | 
             
                - - ">="
         | 
| @@ -67,43 +39,57 @@ dependencies: | |
| 67 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 68 40 | 
             
                    version: '0'
         | 
| 69 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 70 | 
            -
              name:  | 
| 42 | 
            +
              name: rake
         | 
| 71 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 72 44 | 
             
                requirements:
         | 
| 73 | 
            -
                - - " | 
| 45 | 
            +
                - - "~>"
         | 
| 74 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 75 | 
            -
                    version: '0'
         | 
| 47 | 
            +
                    version: '13.0'
         | 
| 76 48 | 
             
              type: :development
         | 
| 77 49 | 
             
              prerelease: false
         | 
| 78 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 79 51 | 
             
                requirements:
         | 
| 80 | 
            -
                - - " | 
| 52 | 
            +
                - - "~>"
         | 
| 81 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 82 | 
            -
                    version: '0'
         | 
| 83 | 
            -
            description:  | 
| 84 | 
            -
            email: | 
| 54 | 
            +
                    version: '13.0'
         | 
| 55 | 
            +
            description: Pyroscope FFI Integration for Ruby
         | 
| 56 | 
            +
            email:
         | 
| 57 | 
            +
            - contact@pyroscope.io
         | 
| 85 58 | 
             
            executables: []
         | 
| 86 59 | 
             
            extensions:
         | 
| 87 | 
            -
            - ext/ | 
| 60 | 
            +
            - ext/rbspy/extconf.rb
         | 
| 61 | 
            +
            - ext/thread_id/extconf.rb
         | 
| 88 62 | 
             
            extra_rdoc_files: []
         | 
| 89 63 | 
             
            files:
         | 
| 90 | 
            -
            -  | 
| 91 | 
            -
            - Gemfile
         | 
| 92 | 
            -
            - Gemfile.lock
         | 
| 64 | 
            +
            - LICENSE
         | 
| 93 65 | 
             
            - README.md
         | 
| 94 | 
            -
            -  | 
| 95 | 
            -
            -  | 
| 96 | 
            -
            -  | 
| 97 | 
            -
            -  | 
| 98 | 
            -
            -  | 
| 99 | 
            -
            -  | 
| 100 | 
            -
            -  | 
| 101 | 
            -
            -  | 
| 66 | 
            +
            - elflib/rbspy/manylinux.sh
         | 
| 67 | 
            +
            - elflib/rbspy/pyproject.toml
         | 
| 68 | 
            +
            - elflib/rbspy/rbspy/__init__.py
         | 
| 69 | 
            +
            - elflib/rbspy/setup.cfg
         | 
| 70 | 
            +
            - elflib/rbspy/setup.py
         | 
| 71 | 
            +
            - elflib/thread_id/manylinux.sh
         | 
| 72 | 
            +
            - elflib/thread_id/pyproject.toml
         | 
| 73 | 
            +
            - elflib/thread_id/setup.cfg
         | 
| 74 | 
            +
            - elflib/thread_id/setup.py
         | 
| 75 | 
            +
            - elflib/thread_id/thread_id/__init__.py
         | 
| 76 | 
            +
            - ext/rbspy/Cargo.toml
         | 
| 77 | 
            +
            - ext/rbspy/Rakefile
         | 
| 78 | 
            +
            - ext/rbspy/build.rs
         | 
| 79 | 
            +
            - ext/rbspy/cbindgen.toml
         | 
| 80 | 
            +
            - ext/rbspy/extconf.rb
         | 
| 81 | 
            +
            - ext/rbspy/src/lib.rs
         | 
| 82 | 
            +
            - ext/thread_id/Cargo.toml
         | 
| 83 | 
            +
            - ext/thread_id/Rakefile
         | 
| 84 | 
            +
            - ext/thread_id/build.rs
         | 
| 85 | 
            +
            - ext/thread_id/cbindgen.toml
         | 
| 86 | 
            +
            - ext/thread_id/extconf.rb
         | 
| 87 | 
            +
            - ext/thread_id/src/lib.rs
         | 
| 102 88 | 
             
            - lib/pyroscope.rb
         | 
| 103 89 | 
             
            - lib/pyroscope/version.rb
         | 
| 104 90 | 
             
            - pyroscope.gemspec
         | 
| 105 | 
            -
            -  | 
| 106 | 
            -
            homepage:  | 
| 91 | 
            +
            - scripts/docker.sh
         | 
| 92 | 
            +
            homepage: https://pyroscope.io
         | 
| 107 93 | 
             
            licenses:
         | 
| 108 94 | 
             
            - Apache-2.0
         | 
| 109 95 | 
             
            metadata: {}
         | 
| @@ -111,20 +97,19 @@ post_install_message: | |
| 111 97 | 
             
            rdoc_options: []
         | 
| 112 98 | 
             
            require_paths:
         | 
| 113 99 | 
             
            - lib
         | 
| 114 | 
            -
            - ext/pyroscope
         | 
| 115 100 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 116 101 | 
             
              requirements:
         | 
| 117 102 | 
             
              - - ">="
         | 
| 118 103 | 
             
                - !ruby/object:Gem::Version
         | 
| 119 | 
            -
                  version:  | 
| 104 | 
            +
                  version: 2.5.9
         | 
| 120 105 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 121 106 | 
             
              requirements:
         | 
| 122 107 | 
             
              - - ">="
         | 
| 123 108 | 
             
                - !ruby/object:Gem::Version
         | 
| 124 109 | 
             
                  version: '0'
         | 
| 125 110 | 
             
            requirements: []
         | 
| 126 | 
            -
            rubygems_version: 3. | 
| 111 | 
            +
            rubygems_version: 3.3.15
         | 
| 127 112 | 
             
            signing_key:
         | 
| 128 113 | 
             
            specification_version: 4
         | 
| 129 | 
            -
            summary:  | 
| 114 | 
            +
            summary: Pyroscope
         | 
| 130 115 | 
             
            test_files: []
         | 
    
        data/.gitignore
    DELETED
    
    
    
        data/Gemfile
    DELETED
    
    
    
        data/Gemfile.lock
    DELETED
    
    | @@ -1,48 +0,0 @@ | |
| 1 | 
            -
            PATH
         | 
| 2 | 
            -
              remote: .
         | 
| 3 | 
            -
              specs:
         | 
| 4 | 
            -
                pyroscope (0.0.10)
         | 
| 5 | 
            -
             | 
| 6 | 
            -
            GEM
         | 
| 7 | 
            -
              remote: https://rubygems.org/
         | 
| 8 | 
            -
              specs:
         | 
| 9 | 
            -
                diff-lcs (1.4.4)
         | 
| 10 | 
            -
                io-console (0.5.9)
         | 
| 11 | 
            -
                irb (1.3.6)
         | 
| 12 | 
            -
                  reline (>= 0.2.5)
         | 
| 13 | 
            -
                rake (13.0.4)
         | 
| 14 | 
            -
                rake-compiler (1.1.1)
         | 
| 15 | 
            -
                  rake
         | 
| 16 | 
            -
                reline (0.2.6)
         | 
| 17 | 
            -
                  io-console (~> 0.5)
         | 
| 18 | 
            -
                rspec (3.10.0)
         | 
| 19 | 
            -
                  rspec-core (~> 3.10.0)
         | 
| 20 | 
            -
                  rspec-expectations (~> 3.10.0)
         | 
| 21 | 
            -
                  rspec-mocks (~> 3.10.0)
         | 
| 22 | 
            -
                rspec-core (3.10.1)
         | 
| 23 | 
            -
                  rspec-support (~> 3.10.0)
         | 
| 24 | 
            -
                rspec-expectations (3.10.1)
         | 
| 25 | 
            -
                  diff-lcs (>= 1.2.0, < 2.0)
         | 
| 26 | 
            -
                  rspec-support (~> 3.10.0)
         | 
| 27 | 
            -
                rspec-mocks (3.10.2)
         | 
| 28 | 
            -
                  diff-lcs (>= 1.2.0, < 2.0)
         | 
| 29 | 
            -
                  rspec-support (~> 3.10.0)
         | 
| 30 | 
            -
                rspec-support (3.10.2)
         | 
| 31 | 
            -
                rubygems-tasks (0.2.5)
         | 
| 32 | 
            -
                  irb (~> 1.0)
         | 
| 33 | 
            -
             | 
| 34 | 
            -
            PLATFORMS
         | 
| 35 | 
            -
              arm64-darwin-20
         | 
| 36 | 
            -
              x86_64-darwin-20
         | 
| 37 | 
            -
              x86_64-linux
         | 
| 38 | 
            -
             | 
| 39 | 
            -
            DEPENDENCIES
         | 
| 40 | 
            -
              bundler
         | 
| 41 | 
            -
              pyroscope!
         | 
| 42 | 
            -
              rake
         | 
| 43 | 
            -
              rake-compiler
         | 
| 44 | 
            -
              rspec
         | 
| 45 | 
            -
              rubygems-tasks
         | 
| 46 | 
            -
             | 
| 47 | 
            -
            BUNDLED WITH
         | 
| 48 | 
            -
               2.2.15
         | 
    
        data/Rakefile
    DELETED
    
    | @@ -1,56 +0,0 @@ | |
| 1 | 
            -
            require "bundler/gem_tasks"
         | 
| 2 | 
            -
            require "rubygems/package_task"
         | 
| 3 | 
            -
            require "rake/extensiontask"
         | 
| 4 | 
            -
            require "rake/testtask"
         | 
| 5 | 
            -
            require "rspec/core/rake_task"
         | 
| 6 | 
            -
            require "rake/clean"
         | 
| 7 | 
            -
            require_relative "./lib/pyroscope/version"
         | 
| 8 | 
            -
             | 
| 9 | 
            -
            CLEAN.include(
         | 
| 10 | 
            -
              "ext/pyroscope/*.o",
         | 
| 11 | 
            -
              "ext/pyroscope/*.bundle"
         | 
| 12 | 
            -
            )
         | 
| 13 | 
            -
             | 
| 14 | 
            -
            CLOBBER.include(
         | 
| 15 | 
            -
              "ext/pyroscope/Makefile",
         | 
| 16 | 
            -
              "pkg"
         | 
| 17 | 
            -
            )
         | 
| 18 | 
            -
             | 
| 19 | 
            -
            BUILD_DIR = 'build'
         | 
| 20 | 
            -
             | 
| 21 | 
            -
            def gem_spec
         | 
| 22 | 
            -
              @gem_spec ||= Gem::Specification.load('pyroscope.gemspec')
         | 
| 23 | 
            -
            end
         | 
| 24 | 
            -
             | 
| 25 | 
            -
            Gem::PackageTask.new(gem_spec) do |pkg|
         | 
| 26 | 
            -
              pkg.need_zip = true
         | 
| 27 | 
            -
              pkg.need_tar = true
         | 
| 28 | 
            -
            end
         | 
| 29 | 
            -
             | 
| 30 | 
            -
            Rake::ExtensionTask.new("pyroscope_c", gem_spec) do |ext|
         | 
| 31 | 
            -
            #  ext.name    = 'pyroscope'
         | 
| 32 | 
            -
              ext.ext_dir = './ext/pyroscope'
         | 
| 33 | 
            -
            #  ext.lib_dir = 'lib/pyroscope'
         | 
| 34 | 
            -
              ext.tmp_dir = BUILD_DIR
         | 
| 35 | 
            -
              ext.config_script = "extconf.rb"
         | 
| 36 | 
            -
            end
         | 
| 37 | 
            -
             | 
| 38 | 
            -
            RSpec::Core::RakeTask.new(:spec)
         | 
| 39 | 
            -
             | 
| 40 | 
            -
            task :build   => [:clean, :compile]
         | 
| 41 | 
            -
             | 
| 42 | 
            -
            task :default => [:build, :spec]
         | 
| 43 | 
            -
             | 
| 44 | 
            -
            task :test do
         | 
| 45 | 
            -
              sudo = RUBY_PLATFORM =~ /darwin/ ? "sudo -E" : ""
         | 
| 46 | 
            -
              system "rake build && #{sudo} gem install pkg/pyroscope-#{Pyroscope::VERSION}.gem && #{sudo} ruby test.rb"
         | 
| 47 | 
            -
            end
         | 
| 48 | 
            -
             | 
| 49 | 
            -
            task :test_exec do
         | 
| 50 | 
            -
              # system "cd ../pyroscope && DOCKER_BUILDKIT=1 docker build -f Dockerfile.static-libs --output type=local,dest=out ." if RUBY_PLATFORM.include?("linux")
         | 
| 51 | 
            -
              system "sudo -E pyroscope exec ruby test.rb"
         | 
| 52 | 
            -
            end
         | 
| 53 | 
            -
             | 
| 54 | 
            -
            task :publish do
         | 
| 55 | 
            -
              system "rake build && gem install pkg/pyroscope-#{Pyroscope::VERSION}.gem && gem push pkg/pyroscope-#{Pyroscope::VERSION}.gem"
         | 
| 56 | 
            -
            end
         | 
| @@ -1,265 +0,0 @@ | |
| 1 | 
            -
            SHELL = /bin/sh
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            # V=0 quiet, V=1 verbose.  other values don't work.
         | 
| 4 | 
            -
            V = 1
         | 
| 5 | 
            -
            Q1 = $(V:1=)
         | 
| 6 | 
            -
            Q = $(Q1:0=@)
         | 
| 7 | 
            -
            ECHO1 = $(V:1=@ :)
         | 
| 8 | 
            -
            ECHO = $(ECHO1:0=@ echo)
         | 
| 9 | 
            -
            NULLCMD = :
         | 
| 10 | 
            -
             | 
| 11 | 
            -
            #### Start of system configuration section. ####
         | 
| 12 | 
            -
             | 
| 13 | 
            -
            srcdir = ../../../../ext/pyroscope
         | 
| 14 | 
            -
            topdir = /usr/include
         | 
| 15 | 
            -
            hdrdir = $(topdir)
         | 
| 16 | 
            -
            arch_hdrdir = /usr/include
         | 
| 17 | 
            -
            PATH_SEPARATOR = :
         | 
| 18 | 
            -
            VPATH = $(srcdir):$(arch_hdrdir)/ruby:$(hdrdir)/ruby
         | 
| 19 | 
            -
            prefix = $(DESTDIR)/usr
         | 
| 20 | 
            -
            rubysitearchprefix = $(sitearchlibdir)/$(RUBY_BASE_NAME)
         | 
| 21 | 
            -
            rubyarchprefix = $(DESTDIR)/usr/lib64/ruby
         | 
| 22 | 
            -
            rubylibprefix = $(exec_prefix)/share/ruby
         | 
| 23 | 
            -
            exec_prefix = $(DESTDIR)/usr
         | 
| 24 | 
            -
            vendorarchhdrdir = $(vendorhdrdir)/$(arch)
         | 
| 25 | 
            -
            sitearchhdrdir = $(sitehdrdir)/$(arch)
         | 
| 26 | 
            -
            rubyarchhdrdir = $(DESTDIR)/usr/include
         | 
| 27 | 
            -
            vendorhdrdir = $(rubyhdrdir)/vendor_ruby
         | 
| 28 | 
            -
            sitehdrdir = $(rubyhdrdir)/site_ruby
         | 
| 29 | 
            -
            rubyhdrdir = $(DESTDIR)/usr/include
         | 
| 30 | 
            -
            rubygemsdir = $(DESTDIR)/usr/share/rubygems
         | 
| 31 | 
            -
            vendorarchdir = $(DESTDIR)/usr/lib64/ruby/vendor_ruby
         | 
| 32 | 
            -
            vendorlibdir = $(vendordir)
         | 
| 33 | 
            -
            vendordir = $(DESTDIR)/usr/share/ruby/vendor_ruby
         | 
| 34 | 
            -
            sitearchdir = $(DESTDIR)/usr/local/lib64/ruby/site_ruby
         | 
| 35 | 
            -
            sitelibdir = $(sitedir)
         | 
| 36 | 
            -
            sitedir = $(DESTDIR)/usr/local/share/ruby/site_ruby
         | 
| 37 | 
            -
            rubyarchdir = $(rubyarchprefix)
         | 
| 38 | 
            -
            rubylibdir = $(rubylibprefix)
         | 
| 39 | 
            -
            sitearchincludedir = $(includedir)/$(sitearch)
         | 
| 40 | 
            -
            archincludedir = $(includedir)/$(arch)
         | 
| 41 | 
            -
            sitearchlibdir = $(libdir)/$(sitearch)
         | 
| 42 | 
            -
            archlibdir = $(DESTDIR)/usr/lib64
         | 
| 43 | 
            -
            ridir = $(datarootdir)/$(RI_BASE_NAME)
         | 
| 44 | 
            -
            mandir = $(DESTDIR)/usr/share/man
         | 
| 45 | 
            -
            localedir = $(datarootdir)/locale
         | 
| 46 | 
            -
            libdir = $(exec_prefix)/lib64
         | 
| 47 | 
            -
            psdir = $(docdir)
         | 
| 48 | 
            -
            pdfdir = $(docdir)
         | 
| 49 | 
            -
            dvidir = $(docdir)
         | 
| 50 | 
            -
            htmldir = $(docdir)
         | 
| 51 | 
            -
            infodir = $(DESTDIR)/usr/share/info
         | 
| 52 | 
            -
            docdir = $(datarootdir)/doc/$(PACKAGE)
         | 
| 53 | 
            -
            oldincludedir = $(DESTDIR)/usr/include
         | 
| 54 | 
            -
            includedir = $(DESTDIR)/usr/include
         | 
| 55 | 
            -
            localstatedir = $(DESTDIR)/var
         | 
| 56 | 
            -
            sharedstatedir = $(DESTDIR)/var/lib
         | 
| 57 | 
            -
            sysconfdir = $(DESTDIR)/etc
         | 
| 58 | 
            -
            datadir = $(DESTDIR)/usr/share
         | 
| 59 | 
            -
            datarootdir = $(prefix)/share
         | 
| 60 | 
            -
            libexecdir = $(DESTDIR)/usr/libexec
         | 
| 61 | 
            -
            sbindir = $(DESTDIR)/usr/sbin
         | 
| 62 | 
            -
            bindir = $(exec_prefix)/bin
         | 
| 63 | 
            -
            archdir = $(rubyarchdir)
         | 
| 64 | 
            -
             | 
| 65 | 
            -
             | 
| 66 | 
            -
            CC_WRAPPER =
         | 
| 67 | 
            -
            CC = gcc
         | 
| 68 | 
            -
            CXX = g++
         | 
| 69 | 
            -
            LIBRUBY = $(LIBRUBY_SO)
         | 
| 70 | 
            -
            LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a
         | 
| 71 | 
            -
            LIBRUBYARG_SHARED = -l$(RUBY_SO_NAME)
         | 
| 72 | 
            -
            LIBRUBYARG_STATIC = -l$(RUBY_SO_NAME)-static $(MAINLIBS)
         | 
| 73 | 
            -
            empty =
         | 
| 74 | 
            -
            OUTFLAG = -o $(empty)
         | 
| 75 | 
            -
            COUTFLAG = -o $(empty)
         | 
| 76 | 
            -
            CSRCFLAG = $(empty)
         | 
| 77 | 
            -
             | 
| 78 | 
            -
            RUBY_EXTCONF_H =
         | 
| 79 | 
            -
            cflags   = $(optflags) $(debugflags) $(warnflags)
         | 
| 80 | 
            -
            cxxflags =
         | 
| 81 | 
            -
            optflags = -O3
         | 
| 82 | 
            -
            debugflags = -ggdb3
         | 
| 83 | 
            -
            warnflags = -Wall -Wextra -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable
         | 
| 84 | 
            -
            cppflags =
         | 
| 85 | 
            -
            CCDLFLAGS = -fPIC
         | 
| 86 | 
            -
            CFLAGS   = $(CCDLFLAGS) -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -mtune=generic -fPIC $(ARCH_FLAG)
         | 
| 87 | 
            -
            INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir)/ruby/backward -I$(hdrdir) -I$(srcdir)
         | 
| 88 | 
            -
            DEFS     =
         | 
| 89 | 
            -
            CPPFLAGS =  -I/usr/include  $(DEFS) $(cppflags)
         | 
| 90 | 
            -
            CXXFLAGS = $(CCDLFLAGS) -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -mtune=generic $(ARCH_FLAG)
         | 
| 91 | 
            -
            ldflags  = -L. -Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -fstack-protector-strong -rdynamic -Wl,-export-dynamic
         | 
| 92 | 
            -
            dldflags = -Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld
         | 
| 93 | 
            -
            ARCH_FLAG = -m64
         | 
| 94 | 
            -
            DLDFLAGS = $(ldflags) $(dldflags) $(ARCH_FLAG)
         | 
| 95 | 
            -
            LDSHARED = $(CC) -shared
         | 
| 96 | 
            -
            LDSHAREDXX = $(CXX) -shared
         | 
| 97 | 
            -
            AR = gcc-ar
         | 
| 98 | 
            -
            EXEEXT =
         | 
| 99 | 
            -
             | 
| 100 | 
            -
            RUBY_INSTALL_NAME = $(RUBY_BASE_NAME)
         | 
| 101 | 
            -
            RUBY_SO_NAME = ruby
         | 
| 102 | 
            -
            RUBYW_INSTALL_NAME =
         | 
| 103 | 
            -
            RUBY_VERSION_NAME = $(RUBY_BASE_NAME)-$(ruby_version_dir_name)
         | 
| 104 | 
            -
            RUBYW_BASE_NAME = rubyw
         | 
| 105 | 
            -
            RUBY_BASE_NAME = ruby
         | 
| 106 | 
            -
             | 
| 107 | 
            -
            arch = x86_64-linux
         | 
| 108 | 
            -
            sitearch = $(arch)
         | 
| 109 | 
            -
            ruby_version = 3.0.0
         | 
| 110 | 
            -
            ruby = $(bindir)/$(RUBY_BASE_NAME)
         | 
| 111 | 
            -
            RUBY = $(ruby)
         | 
| 112 | 
            -
            ruby_headers = $(hdrdir)/ruby.h $(hdrdir)/ruby/backward.h $(hdrdir)/ruby/ruby.h $(hdrdir)/ruby/defines.h $(hdrdir)/ruby/missing.h $(hdrdir)/ruby/intern.h $(hdrdir)/ruby/st.h $(hdrdir)/ruby/subst.h $(arch_hdrdir)/ruby/config.h
         | 
| 113 | 
            -
             | 
| 114 | 
            -
            RM = rm -f
         | 
| 115 | 
            -
            RM_RF = $(RUBY) -run -e rm -- -rf
         | 
| 116 | 
            -
            RMDIRS = rmdir --ignore-fail-on-non-empty -p
         | 
| 117 | 
            -
            MAKEDIRS = /usr/bin/mkdir -p
         | 
| 118 | 
            -
            INSTALL = /usr/bin/install -c
         | 
| 119 | 
            -
            INSTALL_PROG = $(INSTALL) -m 0755
         | 
| 120 | 
            -
            INSTALL_DATA = $(INSTALL) -m 644
         | 
| 121 | 
            -
            COPY = cp
         | 
| 122 | 
            -
            TOUCH = exit >
         | 
| 123 | 
            -
             | 
| 124 | 
            -
            #### End of system configuration section. ####
         | 
| 125 | 
            -
             | 
| 126 | 
            -
            preload =
         | 
| 127 | 
            -
            libpath = . $(archlibdir) /usr/lib64 /home/dmitry/pyroscope-ruby/ext/pyroscope/lib
         | 
| 128 | 
            -
            LIBPATH =  -L. -L$(archlibdir) -L/usr/lib64 -L/home/dmitry/pyroscope-ruby/ext/pyroscope/lib
         | 
| 129 | 
            -
            DEFFILE =
         | 
| 130 | 
            -
             | 
| 131 | 
            -
            CLEANFILES = mkmf.log
         | 
| 132 | 
            -
            DISTCLEANFILES =
         | 
| 133 | 
            -
            DISTCLEANDIRS =
         | 
| 134 | 
            -
             | 
| 135 | 
            -
            extout =
         | 
| 136 | 
            -
            extout_prefix =
         | 
| 137 | 
            -
            target_prefix =
         | 
| 138 | 
            -
            LOCAL_LIBS = -lpyroscope.rbspy -lrustdeps
         | 
| 139 | 
            -
            LIBS = $(LIBRUBYARG_SHARED)  -lm   -lc
         | 
| 140 | 
            -
            ORIG_SRCS = pyroscope.c
         | 
| 141 | 
            -
            SRCS = $(ORIG_SRCS)
         | 
| 142 | 
            -
            OBJS = pyroscope.o
         | 
| 143 | 
            -
            HDRS =
         | 
| 144 | 
            -
            LOCAL_HDRS =
         | 
| 145 | 
            -
            TARGET = pyroscope_c
         | 
| 146 | 
            -
            TARGET_NAME = pyroscope_c
         | 
| 147 | 
            -
            TARGET_ENTRY = Init_$(TARGET_NAME)
         | 
| 148 | 
            -
            DLLIB = $(TARGET).so
         | 
| 149 | 
            -
            EXTSTATIC =
         | 
| 150 | 
            -
            STATIC_LIB =
         | 
| 151 | 
            -
             | 
| 152 | 
            -
            TIMESTAMP_DIR = .
         | 
| 153 | 
            -
            BINDIR        = $(bindir)
         | 
| 154 | 
            -
            RUBYCOMMONDIR = $(sitedir)$(target_prefix)
         | 
| 155 | 
            -
            RUBYLIBDIR    = $(sitelibdir)$(target_prefix)
         | 
| 156 | 
            -
            RUBYARCHDIR   = $(sitearchdir)$(target_prefix)
         | 
| 157 | 
            -
            HDRDIR        = $(rubyhdrdir)/ruby$(target_prefix)
         | 
| 158 | 
            -
            ARCHHDRDIR    = $(rubyhdrdir)/$(arch)/ruby$(target_prefix)
         | 
| 159 | 
            -
            TARGET_SO_DIR =
         | 
| 160 | 
            -
            TARGET_SO     = $(TARGET_SO_DIR)$(DLLIB)
         | 
| 161 | 
            -
            CLEANLIBS     = $(TARGET_SO)
         | 
| 162 | 
            -
            CLEANOBJS     = *.o  *.bak
         | 
| 163 | 
            -
             | 
| 164 | 
            -
            all:    $(DLLIB)
         | 
| 165 | 
            -
            static: $(STATIC_LIB)
         | 
| 166 | 
            -
            .PHONY: all install static install-so install-rb
         | 
| 167 | 
            -
            .PHONY: clean clean-so clean-static clean-rb
         | 
| 168 | 
            -
             | 
| 169 | 
            -
            clean-static::
         | 
| 170 | 
            -
            clean-rb-default::
         | 
| 171 | 
            -
            clean-rb::
         | 
| 172 | 
            -
            clean-so::
         | 
| 173 | 
            -
            clean: clean-so clean-static clean-rb-default clean-rb
         | 
| 174 | 
            -
            		-$(Q)$(RM) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES) .*.time
         | 
| 175 | 
            -
             | 
| 176 | 
            -
            distclean-rb-default::
         | 
| 177 | 
            -
            distclean-rb::
         | 
| 178 | 
            -
            distclean-so::
         | 
| 179 | 
            -
            distclean-static::
         | 
| 180 | 
            -
            distclean: clean distclean-so distclean-static distclean-rb-default distclean-rb
         | 
| 181 | 
            -
            		-$(Q)$(RM) Makefile $(RUBY_EXTCONF_H) conftest.* mkmf.log
         | 
| 182 | 
            -
            		-$(Q)$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES)
         | 
| 183 | 
            -
            		-$(Q)$(RMDIRS) $(DISTCLEANDIRS) 2> /dev/null || true
         | 
| 184 | 
            -
             | 
| 185 | 
            -
            realclean: distclean
         | 
| 186 | 
            -
            install: install-so install-rb
         | 
| 187 | 
            -
             | 
| 188 | 
            -
            install-so: $(DLLIB) $(TIMESTAMP_DIR)/.sitearchdir.time
         | 
| 189 | 
            -
            	$(INSTALL_PROG) $(DLLIB) $(RUBYARCHDIR)
         | 
| 190 | 
            -
            clean-static::
         | 
| 191 | 
            -
            	-$(Q)$(RM) $(STATIC_LIB)
         | 
| 192 | 
            -
            install-rb: pre-install-rb do-install-rb install-rb-default
         | 
| 193 | 
            -
            install-rb-default: pre-install-rb-default do-install-rb-default
         | 
| 194 | 
            -
            pre-install-rb: Makefile
         | 
| 195 | 
            -
            pre-install-rb-default: Makefile
         | 
| 196 | 
            -
            do-install-rb:
         | 
| 197 | 
            -
            do-install-rb-default:
         | 
| 198 | 
            -
            pre-install-rb-default:
         | 
| 199 | 
            -
            	@$(NULLCMD)
         | 
| 200 | 
            -
            $(TIMESTAMP_DIR)/.sitearchdir.time:
         | 
| 201 | 
            -
            	$(Q) $(MAKEDIRS) $(@D) $(RUBYARCHDIR)
         | 
| 202 | 
            -
            	$(Q) $(TOUCH) $@
         | 
| 203 | 
            -
             | 
| 204 | 
            -
            site-install: site-install-so site-install-rb
         | 
| 205 | 
            -
            site-install-so: install-so
         | 
| 206 | 
            -
            site-install-rb: install-rb
         | 
| 207 | 
            -
             | 
| 208 | 
            -
            .SUFFIXES: .c .m .cc .mm .cxx .cpp .o .S
         | 
| 209 | 
            -
             | 
| 210 | 
            -
            .cc.o:
         | 
| 211 | 
            -
            	$(ECHO) compiling $(<)
         | 
| 212 | 
            -
            	$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $(CSRCFLAG)$<
         | 
| 213 | 
            -
             | 
| 214 | 
            -
            .cc.S:
         | 
| 215 | 
            -
            	$(ECHO) translating $(<)
         | 
| 216 | 
            -
            	$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -S $(CSRCFLAG)$<
         | 
| 217 | 
            -
             | 
| 218 | 
            -
            .mm.o:
         | 
| 219 | 
            -
            	$(ECHO) compiling $(<)
         | 
| 220 | 
            -
            	$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $(CSRCFLAG)$<
         | 
| 221 | 
            -
             | 
| 222 | 
            -
            .mm.S:
         | 
| 223 | 
            -
            	$(ECHO) translating $(<)
         | 
| 224 | 
            -
            	$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -S $(CSRCFLAG)$<
         | 
| 225 | 
            -
             | 
| 226 | 
            -
            .cxx.o:
         | 
| 227 | 
            -
            	$(ECHO) compiling $(<)
         | 
| 228 | 
            -
            	$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $(CSRCFLAG)$<
         | 
| 229 | 
            -
             | 
| 230 | 
            -
            .cxx.S:
         | 
| 231 | 
            -
            	$(ECHO) translating $(<)
         | 
| 232 | 
            -
            	$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -S $(CSRCFLAG)$<
         | 
| 233 | 
            -
             | 
| 234 | 
            -
            .cpp.o:
         | 
| 235 | 
            -
            	$(ECHO) compiling $(<)
         | 
| 236 | 
            -
            	$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $(CSRCFLAG)$<
         | 
| 237 | 
            -
             | 
| 238 | 
            -
            .cpp.S:
         | 
| 239 | 
            -
            	$(ECHO) translating $(<)
         | 
| 240 | 
            -
            	$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -S $(CSRCFLAG)$<
         | 
| 241 | 
            -
             | 
| 242 | 
            -
            .c.o:
         | 
| 243 | 
            -
            	$(ECHO) compiling $(<)
         | 
| 244 | 
            -
            	$(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $(CSRCFLAG)$<
         | 
| 245 | 
            -
             | 
| 246 | 
            -
            .c.S:
         | 
| 247 | 
            -
            	$(ECHO) translating $(<)
         | 
| 248 | 
            -
            	$(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -S $(CSRCFLAG)$<
         | 
| 249 | 
            -
             | 
| 250 | 
            -
            .m.o:
         | 
| 251 | 
            -
            	$(ECHO) compiling $(<)
         | 
| 252 | 
            -
            	$(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $(CSRCFLAG)$<
         | 
| 253 | 
            -
             | 
| 254 | 
            -
            .m.S:
         | 
| 255 | 
            -
            	$(ECHO) translating $(<)
         | 
| 256 | 
            -
            	$(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -S $(CSRCFLAG)$<
         | 
| 257 | 
            -
             | 
| 258 | 
            -
            $(TARGET_SO): $(OBJS) Makefile
         | 
| 259 | 
            -
            	$(ECHO) linking shared-object $(DLLIB)
         | 
| 260 | 
            -
            	-$(Q)$(RM) $(@)
         | 
| 261 | 
            -
            	$(Q) $(LDSHARED) -o $@ $(OBJS) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS)
         | 
| 262 | 
            -
             | 
| 263 | 
            -
             | 
| 264 | 
            -
             | 
| 265 | 
            -
            $(OBJS): $(HDRS) $(ruby_headers)
         | 
    
        data/ext/pyroscope/extconf.rb
    DELETED
    
    | @@ -1,79 +0,0 @@ | |
| 1 | 
            -
            require "mkmf"
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            require 'net/http'
         | 
| 4 | 
            -
             | 
| 5 | 
            -
            LIBDIR     = RbConfig::CONFIG['libdir']
         | 
| 6 | 
            -
            INCLUDEDIR = RbConfig::CONFIG['includedir']
         | 
| 7 | 
            -
             | 
| 8 | 
            -
            HEADER_DIRS = [INCLUDEDIR]
         | 
| 9 | 
            -
             | 
| 10 | 
            -
            LIB_DIRS = [LIBDIR, File.expand_path(File.join(File.dirname(__FILE__), "lib"))]
         | 
| 11 | 
            -
             | 
| 12 | 
            -
            COMMIT = "df45c48"
         | 
| 13 | 
            -
             | 
| 14 | 
            -
            # TODO: this is not very accurate, but it works for now
         | 
| 15 | 
            -
            OS = RUBY_PLATFORM.include?("darwin") ? "mac" : "linux"
         | 
| 16 | 
            -
            ARCH = RUBY_PLATFORM.include?("arm64") ? "arm64" : "amd64"
         | 
| 17 | 
            -
             | 
| 18 | 
            -
            PREFIX = "/static-libs/#{COMMIT}/#{OS}-#{ARCH}"
         | 
| 19 | 
            -
             | 
| 20 | 
            -
            ROOT = File.expand_path("..", __FILE__)
         | 
| 21 | 
            -
             | 
| 22 | 
            -
            def run(str)
         | 
| 23 | 
            -
              system(str) || fail("command failed: #{str}")
         | 
| 24 | 
            -
            end
         | 
| 25 | 
            -
             | 
| 26 | 
            -
            if ENV["PYROSCOPE_RUBY_LOCAL"]
         | 
| 27 | 
            -
              puts "PYROSCOPE_RUBY_LOCAL yes"
         | 
| 28 | 
            -
              # TODO: make configurable
         | 
| 29 | 
            -
              pyroscope_path = "#{ENV["HOME"]}/pyroscope"
         | 
| 30 | 
            -
              run("rm -rf #{File.join(ROOT, "build")}")
         | 
| 31 | 
            -
              run("cd #{pyroscope_path} && make build-rust-dependencies-docker")
         | 
| 32 | 
            -
              run("cp #{pyroscope_path}/out/libpyroscope.rbspy.a #{File.join(ROOT, "lib/libpyroscope.rbspy.a")}")
         | 
| 33 | 
            -
              run("cp #{pyroscope_path}/out/librustdeps.a #{File.join(ROOT, "lib/librustdeps.a")}")
         | 
| 34 | 
            -
            else
         | 
| 35 | 
            -
              Net::HTTP.start("dl.pyroscope.io", 443, :use_ssl => true) do |http|
         | 
| 36 | 
            -
                ["libpyroscope.rbspy.a", "librustdeps.a"].each do |name|
         | 
| 37 | 
            -
                  url = PREFIX+"/#{name}.gz"
         | 
| 38 | 
            -
                  req = Net::HTTP::Get.new(url)
         | 
| 39 | 
            -
                  http.request(req) do |resp|
         | 
| 40 | 
            -
                    raise "HTTP error: #{resp.code}" unless resp.code == "200"
         | 
| 41 | 
            -
             | 
| 42 | 
            -
                    r, w = IO.pipe
         | 
| 43 | 
            -
             | 
| 44 | 
            -
                    t = Thread.new do
         | 
| 45 | 
            -
                      zreader = Zlib::GzipReader.new(r)
         | 
| 46 | 
            -
                      File.open(File.join(ROOT, "lib/#{name}"), "wb") do |f|
         | 
| 47 | 
            -
                        loop do
         | 
| 48 | 
            -
                          begin
         | 
| 49 | 
            -
                            chunk = zreader.readpartial(32768)
         | 
| 50 | 
            -
                            break if chunk.nil?
         | 
| 51 | 
            -
                          rescue EOFError
         | 
| 52 | 
            -
                            break
         | 
| 53 | 
            -
                          end
         | 
| 54 | 
            -
                          f.write(chunk)
         | 
| 55 | 
            -
                        end
         | 
| 56 | 
            -
                      end
         | 
| 57 | 
            -
                    end
         | 
| 58 | 
            -
             | 
| 59 | 
            -
                    resp.read_body do |chunk|
         | 
| 60 | 
            -
                      w.write(chunk)
         | 
| 61 | 
            -
                    end
         | 
| 62 | 
            -
             | 
| 63 | 
            -
                    t.join
         | 
| 64 | 
            -
                  end
         | 
| 65 | 
            -
                end
         | 
| 66 | 
            -
              end
         | 
| 67 | 
            -
            end
         | 
| 68 | 
            -
             | 
| 69 | 
            -
            # this is now done upstream
         | 
| 70 | 
            -
            # system "strip --strip-debug #{File.join(ROOT, "lib/libpyroscope.rbspy.combo.a")}"
         | 
| 71 | 
            -
             | 
| 72 | 
            -
            dir_config('pyroscope', HEADER_DIRS, LIB_DIRS)
         | 
| 73 | 
            -
             | 
| 74 | 
            -
            libs = ['-lpyroscope.rbspy', '-lrustdeps']
         | 
| 75 | 
            -
            libs.each do |lib|
         | 
| 76 | 
            -
              $LOCAL_LIBS << "#{lib} "
         | 
| 77 | 
            -
            end
         | 
| 78 | 
            -
             | 
| 79 | 
            -
            create_makefile('pyroscope_c')
         | 
| Binary file | 
| Binary file | 
| Binary file |