├── .gitignore ├── LICENSE ├── README.md ├── part1 ├── ext │ ├── extconf.rb │ └── my_c_ext.c └── my_c_ext.rb ├── part10 ├── Gemfile ├── Rakefile ├── benchmark.rb ├── circular_buffer_ruby.rb ├── ext_ivar │ ├── circular_buffer_ivar.c │ └── extconf.rb └── ext_typeddata │ ├── circular_buffer_typeddata.c │ └── extconf.rb ├── part2 ├── ext │ ├── extconf.rb │ └── methods.c └── methods.rb ├── part3 ├── array_ext.rb └── ext │ ├── array_ext.c │ └── extconf.rb ├── part5 └── gv_bug │ ├── ext │ ├── extconf.rb │ └── gv_bug.c │ └── test.rb ├── part9 ├── Gemfile ├── Rakefile ├── circular_buffer_ruby.rb ├── ext_ivar │ ├── circular_buffer_ivar.c │ └── extconf.rb ├── ext_typeddata │ ├── circular_buffer_typeddata.c │ └── extconf.rb ├── solution │ ├── circular_buffer_ivar.c │ └── circular_buffer_typeddata.c └── test_circular_buffer.rb └── talk └── circular_iterator ├── benchmark.rb ├── circular_iterator_ruby.rb ├── ext_ivar ├── circular_iterator.c └── extconf.rb ├── ext_opt ├── circular_iterator.c └── extconf.rb ├── ext_struct ├── circular_iterator.c └── extconf.rb └── test.rb /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/README.md -------------------------------------------------------------------------------- /part1/ext/extconf.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/part1/ext/extconf.rb -------------------------------------------------------------------------------- /part1/ext/my_c_ext.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/part1/ext/my_c_ext.c -------------------------------------------------------------------------------- /part1/my_c_ext.rb: -------------------------------------------------------------------------------- 1 | require_relative "ext/my_c_ext" 2 | 3 | -------------------------------------------------------------------------------- /part10/Gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/part10/Gemfile -------------------------------------------------------------------------------- /part10/Rakefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/part10/Rakefile -------------------------------------------------------------------------------- /part10/benchmark.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/part10/benchmark.rb -------------------------------------------------------------------------------- /part10/circular_buffer_ruby.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/part10/circular_buffer_ruby.rb -------------------------------------------------------------------------------- /part10/ext_ivar/circular_buffer_ivar.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/part10/ext_ivar/circular_buffer_ivar.c -------------------------------------------------------------------------------- /part10/ext_ivar/extconf.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/part10/ext_ivar/extconf.rb -------------------------------------------------------------------------------- /part10/ext_typeddata/circular_buffer_typeddata.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/part10/ext_typeddata/circular_buffer_typeddata.c -------------------------------------------------------------------------------- /part10/ext_typeddata/extconf.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/part10/ext_typeddata/extconf.rb -------------------------------------------------------------------------------- /part2/ext/extconf.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/part2/ext/extconf.rb -------------------------------------------------------------------------------- /part2/ext/methods.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/part2/ext/methods.c -------------------------------------------------------------------------------- /part2/methods.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/part2/methods.rb -------------------------------------------------------------------------------- /part3/array_ext.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/part3/array_ext.rb -------------------------------------------------------------------------------- /part3/ext/array_ext.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/part3/ext/array_ext.c -------------------------------------------------------------------------------- /part3/ext/extconf.rb: -------------------------------------------------------------------------------- 1 | require "mkmf" 2 | 3 | create_makefile "array_ext" 4 | -------------------------------------------------------------------------------- /part5/gv_bug/ext/extconf.rb: -------------------------------------------------------------------------------- 1 | require "mkmf" 2 | 3 | create_makefile "gv_bug" 4 | -------------------------------------------------------------------------------- /part5/gv_bug/ext/gv_bug.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/part5/gv_bug/ext/gv_bug.c -------------------------------------------------------------------------------- /part5/gv_bug/test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/part5/gv_bug/test.rb -------------------------------------------------------------------------------- /part9/Gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/part9/Gemfile -------------------------------------------------------------------------------- /part9/Rakefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/part9/Rakefile -------------------------------------------------------------------------------- /part9/circular_buffer_ruby.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/part9/circular_buffer_ruby.rb -------------------------------------------------------------------------------- /part9/ext_ivar/circular_buffer_ivar.c: -------------------------------------------------------------------------------- 1 | // The implementation for the class CircularBufferIvar goes here 2 | -------------------------------------------------------------------------------- /part9/ext_ivar/extconf.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/part9/ext_ivar/extconf.rb -------------------------------------------------------------------------------- /part9/ext_typeddata/circular_buffer_typeddata.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/part9/ext_typeddata/circular_buffer_typeddata.c -------------------------------------------------------------------------------- /part9/ext_typeddata/extconf.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/part9/ext_typeddata/extconf.rb -------------------------------------------------------------------------------- /part9/solution/circular_buffer_ivar.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/part9/solution/circular_buffer_ivar.c -------------------------------------------------------------------------------- /part9/solution/circular_buffer_typeddata.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/part9/solution/circular_buffer_typeddata.c -------------------------------------------------------------------------------- /part9/test_circular_buffer.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/part9/test_circular_buffer.rb -------------------------------------------------------------------------------- /talk/circular_iterator/benchmark.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/talk/circular_iterator/benchmark.rb -------------------------------------------------------------------------------- /talk/circular_iterator/circular_iterator_ruby.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/talk/circular_iterator/circular_iterator_ruby.rb -------------------------------------------------------------------------------- /talk/circular_iterator/ext_ivar/circular_iterator.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/talk/circular_iterator/ext_ivar/circular_iterator.c -------------------------------------------------------------------------------- /talk/circular_iterator/ext_ivar/extconf.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/talk/circular_iterator/ext_ivar/extconf.rb -------------------------------------------------------------------------------- /talk/circular_iterator/ext_opt/circular_iterator.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/talk/circular_iterator/ext_opt/circular_iterator.c -------------------------------------------------------------------------------- /talk/circular_iterator/ext_opt/extconf.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/talk/circular_iterator/ext_opt/extconf.rb -------------------------------------------------------------------------------- /talk/circular_iterator/ext_struct/circular_iterator.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/talk/circular_iterator/ext_struct/circular_iterator.c -------------------------------------------------------------------------------- /talk/circular_iterator/ext_struct/extconf.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/talk/circular_iterator/ext_struct/extconf.rb -------------------------------------------------------------------------------- /talk/circular_iterator/test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterzhu2118/ruby-c-ext-code/HEAD/talk/circular_iterator/test.rb --------------------------------------------------------------------------------