datadog-ruby_core_source
Description
This gem is a fork of debase-ruby_core_source for dd-trace-rb.
Usage
Example use in extconf.rb:
require 'datadog/ruby_core_source'
hdrs = proc { have_header("vm_core.h") and have_header("iseq.h") }
dir_config("ruby") # allow user to pass in non-standard core include directory
if !Datadog::RubyCoreSource::create_makefile_with_core(hdrs, "foo")
# error
exit(1)
endTo add another ruby version's source to this gem's directory:
$ rake add_source VERSION=2.1.3 PATCHLEVEL=242
Adding released versions. add_source can use a pre-downloaded .tgz file. Use TGZ_FILE_NAME to pass it. Note that the PATCHLEVEL variable is optional because add_source can extract the patch level from version.h of the downloaded sources.
Then, run the trim task to minimize the shipped files:
$ rake trim[2.1.3]
See the comments above the FindIncludes module in the Rakefile for how it works, and/or reference previous PRs.
To re-download and trim the headers of every ruby version already under lib/datadog/ruby_core_source, i.e. run add_source + trim for each of them:
$ rake redownload_all_sources
There should be no diff unless the headers used by dd-trace-rb changed or a release was re-rolled upstream.
Credits
The following credits are in the upstream debase-ruby_core_source README:
- @valich for 2.5.0-preview1 headers and src-based ruby support
- @dirknilius for 2.2.3 headers
- @andremedeiros for 2.1.1 headers
- @formigarafa for fixing 2.1.0 headers
LICENSE
Ruby library code is MIT license - see LICENSE.txt. Included ruby headers, lib/datadog/ruby_core_source/, are mostly Ruby license - see RUBY_LICENSE. Some headers have their own licenses - see LEGAL.