A long-lived project that still receives updates
Provide Ruby core source files for C extensions that need them.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

 Project Readme

Description

Fork of debugger-ruby_core_source that uses included Ruby headers (*.h and *.inc) instead of downloading them. Used by debase. Only ruby >= 2.0.0 is supported (debase doesn't work for older rubies)

Usage

Example use in extconf.rb:

require 'debase/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 !Debase::RubyCoreSource::create_makefile_with_core(hdrs, "foo")
  # error
  exit(1)
end

To add another ruby version's source to this gem's directory:

$ rake add_source VERSION=2.1.3 PATCHLEVEL=242

add_source can use pre-downloaded .tgz (use TGZ_FILE_NAME to pass it) also it can extract patch level from version.h of downloaded sources, so PATCHLEVEL variable is optional.

Adding pre-release versions. For pre-releases PATCHLEVEL should not be provided, as it is not present in distribution. To find sources of pre-release versions, this gem will look in Debase::RubyCoreSource::REVISION_MAP hash. Please add respective entry into this hash on adding pre-release version sources.

Credits

  • @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/debase/ruby_core_source/, are mostly Ruby license, see RUBY_LICENSE. Some headers have their own licenses, see LEGAL.