Home
3.0.5
Downloads
Dark mode
Home
Pages
Classes
Methods
Table of Contents
Creating Extension Libraries for Ruby
Basic Knowledge
Data Types
Check Data Type of the VALUE
Convert VALUE into C Data
Convert C Data into VALUE
Manipulating Ruby Data
String Functions
Array Functions
Extending Ruby with C
Adding New Features to Ruby
Class and Module Definition
Method and Singleton Method Definition
Constant Definition
Use Ruby Features from C
Evaluate Ruby Programs in a String
ID or Symbol
Invoke Ruby Method from C
Accessing the Variables and Constants
Information Sharing Between Ruby and C
Ruby Constants That Can Be Accessed From C
Global Variables Shared Between C and Ruby
Encapsulate C Data into a Ruby Object
C struct to Ruby object
Ruby object to C struct
Example - Creating the dbm Extension
Make the Directory
Design the Library
Write the C Code
Prepare extconf.rb
Prepare Depend (Optional)
Generate Makefile
Run make
Debug
Done! Now You Have the Extension Library
Appendix A. Ruby Source Files Overview
Ruby Language Core
Ruby Syntax Parser
Ruby Evaluator (a.k.a. YARV)
Regular Expression Engine (Oniguruma)
Utility Functions
Ruby Interpreter Implementation
Class Library
Multilingualization
goruby Interpreter Implementation
Appendix B. Ruby Extension API Reference
Types
Variables and Constants
C Pointer Wrapping
Checking Data Types
Data Type Conversion
Defining Classes and Modules
Defining Global Variables
Constant Definition
Method Definition
Invoking Ruby method
Instance Variables
Control Structure
Exceptions and Errors
Threading
Input/Output (IO) on a single file descriptor
I/O Multiplexing
Initialize and Start the Interpreter
Hooks for the Interpreter Events
Memory usage
Macros for Compatibility
Defining backward compatible macros for keyword argument functions
Appendix C. Functions available for use in extconf.rb
Appendix D. Generational GC
Incompatibility
Write barriers
Don’t touch pointers directly
Consider whether to insert write barriers
Combine with built-in types
Insert write barriers
Appendix E. RB_GC_GUARD to protect from premature GC
Appendix F. Ractor support
Show/hide navigation
Pages
NEWS-1.8.7
NEWS-1.9.1
NEWS-1.9.2
NEWS-1.9.3
NEWS-2.0.0
NEWS-2.1.0
NEWS-2.2.0
NEWS-2.3.0
NEWS-2.4.0
NEWS-2.5.0
NEWS-2.6.0
NEWS-2.7.0
bug_triaging
contributing
dig_methods
dtrace_probes
extension.ja
extension
fiber
globals
implicit_conversion
keywords
maintainers
make_cheatsheet
marshal
memory_view
method_documentation
ractor
regexp
CONTRIBUTING
COPYING
COPYING.ja
LEGAL
NEWS
README.ja
README
README.win32
security
signals
standard_library
syntax
assignment
calling_methods
comments
control_expressions
exceptions
literals
methods
miscellaneous
modules_and_classes
pattern_matching
precedence
refinements