diff options
author | Lamont Granquist <lamont@scriptkiddie.org> | 2014-01-01 10:25:57 -0600 |
---|---|---|
committer | Lamont Granquist <lamont@scriptkiddie.org> | 2014-01-01 10:25:57 -0600 |
commit | 835956ca69369993388195949c03613e0759e6d1 (patch) | |
tree | 547e24c44ac85558a23fac8c292faf8cf0bb498c | |
parent | 90c4290796ff8eabe817ed1cae32af89bf7fbc7e (diff) | |
download | ffi-yajl-835956ca69369993388195949c03613e0759e6d1.tar.gz |
disable c-extension for ruby-1.8.7
-rw-r--r-- | README.md | 13 | ||||
-rw-r--r-- | lib/ffi_yajl.rb | 5 | ||||
-rw-r--r-- | lib/ffi_yajl/ext.rb | 5 |
3 files changed, 17 insertions, 6 deletions
@@ -1,14 +1,19 @@ [![Build Status](https://travis-ci.org/lamont-granquist/ffi-yajl.png)](https://travis-ci.org/lamont-granquist/ffi-yajl) [![Code Climate](https://codeclimate.com/github/lamont-granquist/ffi-yajl.png)](https://codeclimate.com/github/lamont-granquist/ffi-yajl) -TODO: +## TODO - switching from curling yajl2 sources to using git submodule - fix rake compile blowing up on libyajl2 - block ruby 1.8.7 from using c extension (segfault) - test both ffi and ext on platforms that support both (MRI, rbx) -BUILD NOTES: - - building libyajl2 requires 'apt-get install cmake' on ubuntu, but note - that 'apt-get install libyajl2' will be better +## BUILD NOTES + +- building libyajl2 requires 'apt-get install cmake' on ubuntu, but note + that 'apt-get install libyajl2' will be better + +## KNOWN BUGS + +- C Extension segfaults on ruby 1.8.7, so the ffi mode is forced for RUBY_VERSION < 1.9 diff --git a/lib/ffi_yajl.rb b/lib/ffi_yajl.rb index c280826..10ebb38 100644 --- a/lib/ffi_yajl.rb +++ b/lib/ffi_yajl.rb @@ -1,8 +1,9 @@ if ENV['FORCE_FFI_YAJL'] == "ext" require 'ffi_yajl/ext' -elsif ENV['FORCE_FFI_YAJL'] == "ffi" || defined?(Yajl) - # can't dynlink our libyajl2 c-ext and Yajl's libyajl1 c-ext into the same binary +elsif ENV['FORCE_FFI_YAJL'] == "ffi" || defined?(Yajl) || RUBY_VERSION.to_f < 1.9 + # - can't dynlink our libyajl2 c-ext and Yajl's libyajl1 c-ext into the same binary + # - c-extension segfaults on ruby 1.8.7 require 'ffi_yajl/ffi' else begin diff --git a/lib/ffi_yajl/ext.rb b/lib/ffi_yajl/ext.rb index d8dac6e..30f79bd 100644 --- a/lib/ffi_yajl/ext.rb +++ b/lib/ffi_yajl/ext.rb @@ -3,6 +3,11 @@ require 'rubygems' require 'ffi_yajl/encoder' require 'ffi_yajl/parser' +unless RUBY_VERSION.to_f >= 1.9 + # segfaults on ruby 1.8 and this is an exceedingly low priority to fix, use ffi instead + raise NotImplementedError, "The C-extension is disabled on Ruby 1.8" +end + module FFI_Yajl class Parser require 'ffi_yajl/ext/parser' |